list comprehension
列表解析List Comprehensions:是Python内置的非常简单却强大的可以用来创建list的生成式
[n for n in range(5)]
![](https://i-blog.csdnimg.cn/blog_migrate/7eb1ab5196db64d7f085bf6d3918c8c9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e095cbcda2b0655aa80c7172acbd9bfd.png)
生成器generator:一边循环一边计算的机制
生成器表达式同列表解析语法,只不过把列表解析的[]换成()
(n for n in range(5))
list(generator)迫使其显示结果
用生成器表达式来代替数据量较大的列表推导
列表推导式虽然简洁,但是不适合大数据量的生成,因为可能会把内存占满。这是就要用到生成器表达式,它返回生成器,基本不占用内存。
生成器函数:在函数中如果出现了yield关键字,那么该函数就不再是普通函数,而是生成器函数。
列表解析举例:
print([i for i in range(10) if i%2 == 0])
print([i if i ==0 else 100 for i in range(10)])
# [0, 2, 4, 6, 8]
# [0, 100, 100, 100, 100, 100, 100, 100, 100,100]
python中list查索引
a_list = [“a”,”b”,”1”,”2”,”b”]
print([i for i, x in enumerate(a) ifx==”2”])
python中两层list展开平铺成一层
![](https://i-blog.csdnimg.cn/blog_migrate/e4cd81390531f4f3939356bfa3d0938a.png)