python基础之列表生成式和生成器
一、列表生成式
[ x**2 for x in range(1,11)]
[生成式(要生成的元素) for循环]
[ m+n for m in 'adf' for n in 'wer']
运算式 for循环 for循环
[ s for s in L1 if isinstance(s,str)]
条件放在最后
二、定义generator的两种方法。
第一种:将列表生成器的[]改成()即可。
[ x**2 for x in range(1,11)] //列表生成 ( x**2 for x in range(1,11)) //generator
第二种:如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator
In [49]: def fib(max): ...: n,a,b = 0,0,1 ...: while n<max: ...: yield b ...: a,b = b,a+b ...: n=n+1 ...: return 'down' ...: In [50]: fib(4) Out[50]: <generator object fib at 0x7facec269830>
浙公网安备 33010602011771号