python_列表生成器/迭代器
列表生成式
例如 有一个列表
a =[2,3,4,5]
需要将列表都加上1
#第一种方法 for i in map(lambda i:i+1,a)
#第二种方法 for index,i in enumerate(a): a[index] +=1 print(a)
#第三种,简单列表生成式 a = [i+1 for i in a] print(a)#加个三元运算符a = [ i *2 if i>3 else i for i in a]
1.列表生成器_惰性运算
1.1 生成器
中括号就是列表生成式,小括号就是列表生成器
a = ( i *2 for i in range(a))
def fib(num): count = 0 a,b = 0 ,1 #a=0, b= 1 while count < num: tmp = a a = b b = a + tmp #print(a) count +=1 yield a #返回a, 同时挂起当前这个函数, a返回给了通过__next__()调用当前函数的人 #return a print("done...") f = fib(10) print(f.__next__())
迭代器
所有的生成器都是迭代器,迭代器不一定都是生成器(不同的角度,用iter方法,python
内存对象认为迭代器,从本质上就一回事)
例如 python 3里面 range(0,10) 这实际上就是一个迭代器
相关推荐
坚持是一种品质 2020-11-16
夜斗不是神 2020-11-17
huavhuahua 2020-11-20
Yasin 2020-11-16
xiaoseyihe 2020-11-16
千锋 2020-11-15
diyanpython 2020-11-12
chunjiekid 2020-11-10
wordmhg 2020-11-06
YENCSDN 2020-11-17
lsjweiyi 2020-11-17
houmenghu 2020-11-17
Erick 2020-11-17
HeyShHeyou 2020-11-17
以梦为马不负韶华 2020-10-20
lhtzbj 2020-11-17
pythonjw 2020-11-17
dingwun 2020-11-16