天天看点

python列表解析,生成表达式(一分钟读懂)1.列表解析[马上计算,占用内存]2.生成表达式(用的时候才计算,未占用内存)

如果想通过操作和处理一个序列来创建一个新的列表时,可以使用列表解析和生成表达式

区分就是 [ ] ( )

1.列表解析 list comprehensions

2.生成表达式

a = [ i for i in range(1,10) if i%3==0 or i%5==0 ] # 1.列表解析 list comprehensions
b = ( i for i in range(1,10) if i%3==0 or i%5==0 ) # 2.生成表达式
           

1.列表解析[马上计算,占用内存]

a = [ i for i in range(1,10) if i%3==0 or i%5==0 ]
'''
            -------1-------  ---------2----------
     ----3----
     1:范围
     2:可以整除3或者5的数
     3:for 循环
'''     
           

2.生成表达式(用的时候才计算,未占用内存)

b = ( i for i in range(1,10) if i%3==0 or i%5==0 )

print(a) # 结果为 [3, 5, 6, 9] 是一个列表
print(sum(a)) # 结果为 23
print(b) # 结果为  <generator object <genexpr> at 0x01D2B568> 返回来的是 生成器对象
for i in b:
    print(i) # 提取里面的内容 [3, 5, 6, 9]