列表6:嵌套的列表推导式

本文介绍了Python中的嵌套列表推导式,包括基础用法、层级结构和带条件的选择。通过示例解析了如何创建和使用多层次的嵌套列表推导式,以实现更复杂的列表生成逻辑。

目录

1. 嵌套列表推导式基础

2. 嵌套列表推导式层级

3. 带条件选择的嵌套列表推导式


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]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

燃烧的火鸟啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值