四张图帮你掌握python列表推导式
2020/02
21
12:02
阅读(2359)
阅读(2359)
python列表推导式可以简化for循环迭代列表,可以减少代码量,使用程序更加简洁。 python列表推导式可以利用 range 区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的列表。 下面就来说说列表推导式的四种用法:
1、列表推导式的基本用法,基本格式为: [表达式 for 迭代变量 in 可迭代对象 ] 。
a_list = [x * x for x in range(10)] #输出结果: [out]:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
列表推导式基本格式用法图示说明:
2、 带条件的列表推导式,语法格式为:[表达式 for 迭代变量 in 可迭代对象 if 条件表达式] ,if 语句可以多个。
b_list = [x * x for x in range(10) if x % 2 == 0
3、多个for语句的列表推导式格式,基本格式为:[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
举个例子:
[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y] #输出结果: [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
多个for循环语句的列表推导式等价于:
combs = [] for x in [1,2,3]: for y in [3,1,4]: if x != y: combs.append((x, y)) #输出结果: [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
4、列表推导式嵌套列表推导式,这个有点复杂。
举个例子:
matrix=[[1,2,3,4],[5,6,7,8],[9,10,11,12]] [[row[i] for row in matrix] for i in range(4)] #输出结果: [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
上面这个嵌套列表推导式等价于:
transposed = [] for i in range(4): transposed.append([row[i] for row in matrix]) #输出结果: [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
上面四种python列表推导式后面两种有点复杂,但只要拆分来看,也就很容易理解了。 实际应用中,你也可以使用内置函数去组成复杂的流程语句。
由o郭二爷o原创或整理--转载请注明: https://www.dszhp.com/python-list.html
发表回复