5.16 列表生成式
l=[]
for i in range(100):
l.append('egg%s' %i)
print(l)
l=['egg%s' %i for i in range(100)]
l=['egg%s' %i for i in range(1000) if i > 10]
print(l)
5.17 列表生成式与生成器表达式的应用
names=['egon','alex_sb','wupeiqi','yuanhao','lxx']
res=map(la
将两个嵌套for循环写成一个列表生成式
如,有一个嵌套列表,a=[[1,2],[3,4],[5,6]],要提取列表里的每一个元素
用for循环处理:
for i in a:
for j in i:
print(j)
用列表生成式:
b=[j for i in a for j in i]#注意两个for的顺序
print(b)
b=[1, 2, 3, 4, 5, 6]
以上这篇python用列表生成式写嵌套循环的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大
本文实例讲述了Python列表生成式与生成器操作。分享给大家供大家参考,具体如下:
列表生成式:能够用来创建list的生成式
比如想要生成类似[1*1,2*2,3*3,…..100*100]的这种list时
可以用
[x * x for x in range(1,11)]
这样就能生成,除此之外,后面还能添加判断条件来筛选
比如
[x * x for x in range(1,11) if x%2=0]
这样就能筛选出仅有偶数的平方
还能用多层循环来生成全排列
[m+n for m i
列表生成式:会将所有的结果全部计算出来,把结果存放到内存中,如果列表中数据比较多,就会占用过多的内存空间,可能会导致MemoryError内存错误或者导致程序在运行时出现卡顿的情况
列表生成器:会创建一个列表生成器对象,不会一次性的把所有结果都计算出来,如果需要获取数据,可以使用next()函数来获取,但是需要注意,一旦next()函数获取不到数据,会导致出现StopIteration异常错误,可以使用for循环遍历列表生成器,获取所有数据
需要视情况而定,如果数据量比较大,推荐使用生成器
p
1 平方列表
如果你想创建一个包含1到10的平方的列表,你可以这样做:
squares = []
for x in range(10):
squares.append(x**2)
这是一个简单的例子,但是使用列表生成式可以更简洁地创建这个列表。
squares = [x**2 for x in range(10)]
这个最简单的列表生成式由方括号开始,方括号内部先是一个表达式,其后跟着一个for语句。列表生成式总是返回一个列表。
2 整除3的数字列表
通常,你可能这样写: