目录
1. 嵌套列表推导式基础
列表推导式中的初始表达式可以是任何表达式,甚至可以是另一个列表推导式。
列表推导式还可以变得更复杂一些,那就是实现嵌套,语法如下:
[expression for target1 in iterable1
for target2 in iterable2
...
for targetN in iterableN]
每层嵌套还可以附带一个用于条件筛选的 if 分句:
[expression for target1 in iterable1 if condition1
for target2 in iterable2 if condition2
...
for targetN in iterableN if conditionN]
2. 嵌套列表推导式层级
如上说明,嵌套列表推导式中,越靠前的列表推导式在运行层级中越外围/上级,示例如下:
#嵌套列表推导式
matrix = [[1,2,3],[4,5,6],[7,8,9]]
flatten = [col for row in matrix for col in row]
flatten
[1, 2, 3, 4, 5, 6, 7, 8, 9]
#for循环可见,‘for row in matrix’在嵌套列表推导式中更靠前,在for循环中更外围
flatten2 = []
for row in matrix:
for col in row:
flatten2.append(col)
flatten2
[1, 2, 3, 4, 5, 6, 7, 8, 9]
3. 带条件选择的嵌套列表推导式
实操示例:
[[x,y] for x in range(10) if x % 2 == 0 for y in range(10) if y % 3 == 0]
Out[3]:
[[0, 0],
[0, 3],
[0, 6],
[0, 9],
[2, 0],
[2, 3],
[2, 6],
[2, 9],
[4, 0],
[4, 3],
[4, 6],
[4, 9],
[6, 0],
[6, 3],
[6, 6],
[6, 9],
[8, 0],
[8, 3],
[8, 6],
[8, 9]]
本文介绍了Python中的嵌套列表推导式,包括基础用法、层级结构和带条件的选择。通过示例解析了如何创建和使用多层次的嵌套列表推导式,以实现更复杂的列表生成逻辑。

3146

被折叠的 条评论
为什么被折叠?



