列表推导式,生成器表达式

列表推导式

li = [i for i in range(1, 100)]

示例,将含有两个e的人名留下

names = [['tom','biuli','jeffeson','annif','eedf'],
         ['alice','defe','kjh']]
print([name for i in names for name in i if name.count('e') == 2])

生成器表达式,与列表推导式写法几乎一模一样

print((i for i in range(1, 100)))

 

列表推导式:
缺点:
1.列表推导式只能构建比较复杂且有规律的列表
2.超过三层循环才能构建成功,就不建议用列表推导式
3.查找错误(debug模式)不行
优点:
一行构建,简单

字典推导式
l1 = ['name','age','sex']
l2 = ['tom',15,'']
dic = {l1[i]:l2[i] for i in range(len(l1))}
print(dic)

 

posted @ 2023-02-15 21:19  Wchime  阅读(30)  评论(0)    收藏  举报