Python嵌套列表推导式


嵌套列表是在列表中包含列表。Python 提供了优雅地处理嵌套列表并应用常用函数来操作嵌套列表的功能。在本文中,我们将学习如何使用列表推导式在 Python 中创建和使用嵌套列表。

创建矩阵

创建矩阵涉及创建一系列行和列。我们可以使用 for 循环来创建矩阵的行和列,方法是在另一个包含 for 循环的 Python 列表内放置一个 Python 列表。

示例

 在线演示

matrix = [[m for m in range(4)] for n in range(3)]
print(matrix)

运行以上代码,得到以下结果

[[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]

从嵌套列表中过滤

我们可以使用带有过滤功能的列表推导式,方法是在子列表中使用 for 循环。下面我们有一个二维列表,在一个更大的列表内包含一层子列表。我们访问这些嵌套列表中的每个元素。通过使用过滤器条件。

示例

 在线演示

years = [['January', 'February', 'March'], ['April', 'May', 'June'], ['July', 'August', 'September'],['October','November','December']]
# Nested List comprehension with an if condition
years = [years for sublist in years for years in sublist if len(years) <= 5]
print(years)

运行以上代码,得到以下结果

['March', 'April', 'May', 'June', 'July']

展平嵌套子列表

我们还可以获取一个嵌套列表并将其展平,方法是创建一个不包含任何子列表的单个列表。

示例

 在线演示

nested_list = [[1] ,[17, 19], [21,23,25], [32,35,37,39]]
# Nested List Comprehension to flatten a given 2-D matrix
flattened_list = [value for sublist in nested_list for value in sublist]
print(flattened_list)

运行以上代码,得到以下结果

[1, 17, 19, 21, 23, 25, 32, 35, 37, 39]

更新于:2019年12月30日

2K+ 浏览量

启动你的职业生涯

完成课程后获得认证

开始学习
广告
© . All rights reserved.