一、列表推导式
1、循环模式
简单循环
l1 = [i for i in range(2,10,2)] print(l1) #结果:[2, 4, 6, 8]
带有表达式的循环
#打印1-10的平方 l1 = [i*i for i in range(1,11)] print(l1) #结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100] #打印小米2到小米9 mi_list=[‘小米{}‘.format(i) for i in range(2,10)] print(mi_list) #结果:[‘小米2‘, ‘小米3‘, ‘小米4‘, ‘小米5‘, ‘小米6‘, ‘小米7‘, ‘小米8‘, ‘小米9‘]
2、筛选模式
单层筛选
#筛选大于10的数 numbers = [45,7,63,2,25,84,8,87,54,8,76,2,45,19] print([number for number in numbers if number >10]) #结果:[45, 63, 25, 84, 87, 54, 76, 45, 19]
迭代列表中的列表,这个地方列表中的元素必须都是可迭代的
#筛选大于10的数 numbers = [[45,7,63,2],[25,84,8,87,54],[8,76,2,45,19]] print([number for list in numbers for number in list if number >10]) #结果:[45, 63, 25, 84, 87, 54, 76, 45, 19]
二、生成器表达式
生成器表达式和列表推导式的区别:
1、生成器表达式使用(),列表推导式使用[]
2、生成器表达式返回一个生成器,列表推导式返回一个列表
一个简单的生成器表达式例子:
l1 = (i for i in range(2,10,2)) print(l1) #结果:<generator object <genexpr> at 0x00000206C615A408> print(l1.__next__()) #结果:2
三、字典推导式、集合推导式
字典推导式
a = {i:"第{}个".format(i) for i in range(1,6)} print(a) #结果:{1: ‘第1个‘, 2: ‘第2个‘, 3: ‘第3个‘, 4: ‘第4个‘, 5: ‘第5个‘}
集合推导式
集合推导式多了个去重的功能
b = {i*i for i in [1,-1,2,-2]} print(b) #结果:{1, 4}
学习链接:
https://www.cnblogs.com/jin-xin/articles/10858058.html
原文:https://www.cnblogs.com/wgsn/p/10862593.html