**列表生成式: a = [1,2,3]
a = [1,2,3] a [1, 2, 3]
[ i*2 for i in range(10) ] [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
列表里面可以写函数
相当于: a=[] for i in range(10): a.append(i*2) 输出a: [0.2.4,6,8,10,12,14,16,18]
列表生成器
( i*2 for i in range(10) ) <generator object <genexpr> at 0x000001FE4BE6A308>
b=( i*2 for i in range(10) ) for i in b: ... print(i) ... 02 4 6 8 10 12 14 16 18
生成器 只有在调用时才会生成相应的数据 只记录当前位置 只有一个__next__()方法
可以用c.next()查看下个数据
b=( i*2 for i in range(100000) ) b <generator object <genexpr> at 0x000001FE4BE6A410>
b.next()
b.next() 2
b.next() 4
b.next() 6
b.next() 8