Python List嵌套推导式

List推导式是 Python 最令人惊叹的特性之一。这是一种通过迭代可迭代对象来创建列表的聪明而简洁的方法。嵌套列表推导只不过是另一个列表推导中的列表推导,这与嵌套 for 循环非常相似。

让我们看一些例子来了解嵌套列表推导可以做什么:

示例 1:

我想创建一个如下所示的矩阵:

matrix = [[0, 1, 2, 3, 4],
          [0, 1, 2, 3, 4],
          [0, 1, 2, 3, 4],
          [0, 1, 2, 3, 4],
          [0, 1, 2, 3, 4]]

以下代码对给定任务使用嵌套 for 循环:

matrix = []

for i in range(5):
	
	# Append an empty sublist inside the list
	matrix.append([])
	
	for j in range(5):
		matrix[i].append(j)
		
print(matrix)
输出:
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [ 0、1、2、3、4]]

使用嵌套列表推导可以在一行中实现相同的输出:

# Nested list comprehension
matrix = [[j for j in range(5)] for i in range(5)]

print(matrix)

解释:

上述程序的语法如下所示:

[expression for i in range(5)] –> 表示执行此表达式并将其输出附加到列表中,直到变量 i 从 0 迭代到 4。

例如:- [i for i in range(5)] –> 在这种情况下,表达式的输出
只是变量 i 本身,因此我们将其输出附加到列表中,同时 i
从 0 迭代到 4。

因此输出将是 –> [0, 1, 2, 3, 4]

但在我们的例子中,表达式本身就是一个列表推导式。因此,我们需要先
求解表达式,然后将其输出附加到列表中。

expression = [j for j in range(5)] –> 这个表达式的输出与
上面讨论的示例相同。

因此表达式 = [0, 1, 2, 3, 4]。

现在我们只是简单地附加这个输出,直到变量 i 从 0 迭代到 4,这将
是总共 5 次迭代。因此,最终输出将只是
上述表达式重复 5 次的输出列表。

输出:[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4] , [0, 1, 2, 3, 4]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值