python生成列表_python列表生成器与生成器

列表生成器是python内置的非常简单却非常强大的。

生成一个列表[1,2,3,4]可以用list(range(1,5))

python生成列表_python列表生成器与生成器_第1张图片

列表生成器的应用

python生成列表_python列表生成器与生成器_第2张图片

如果上面的公式加上判断,就可以筛选出想要的结果,比如仅需要偶数的平方

python生成列表_python列表生成器与生成器_第3张图片

使用多层循环

python生成列表_python列表生成器与生成器_第4张图片

生成器

生成器与列表生成器的本质区别就是:一个已经生成数据了,使用时,如果数据过大,会产生内存溢出,而生成器是只有循环时,才会生成数据。

生成器与列表生成器的区别在于一个是[],一个是()

生成器书写g=(x x ())

(g)

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

打印generator的方法是next(g)和for循环

python生成列表_python列表生成器与生成器_第5张图片

使用函数的形式,打印斐波拉契数列(max):

nab=n < max:

(b)

ab=ba+b

n=n+fib()

python生成列表_python列表生成器与生成器_第6张图片

上面的函数和generator仅一步之遥,要把fib函数变成generator,只需要把print(b)改成yield 就可以(max):

nab=n < max:

b

ab=ba+b

n=n+fib()

打印fib的生成器方法i fib():

(i)

如果使用for循环调用generator时,想拿到return返回值,需捕获stopIteration错误,返回值包含在stopIteration的value中:

g=fib(6)(max):

nab=n < max:

b

ab=ba+b

n=n+g=fib()

:

:

x=(g)

(x)

e:

(e.value)

python生成列表_python列表生成器与生成器_第7张图片

你可能感兴趣的:(python生成列表)