如果想通过操作和处理一个序列来创建一个新的列表时,可以使用列表解析和生成表达式
区分就是 [ ] ( )
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]