**列表生成式: 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