用于展平嵌套列表的 Python 程序

要理解这个例子,你应该具备以下 Python 编程 主题的知识


示例 1:使用列表推导式

my_list = [[1], [2, 3], [4, 5, 6, 7]]

flat_list = [num for sublist in my_list for num in sublist]
print(flat_list)

输出

[1, 2, 3, 4, 5, 6, 7]

这是扁平化列表最简单的 Pythonic 方法之一。

  • 使用列表推导式从 my_list 访问子列表,然后访问子列表的每个元素。
  • 每个元素 num 都存储在 flat_list 中。

要了解有关列表推导式的更多信息,请访问 Python 列表推导式


示例 2:使用嵌套 for 循环(非 Pythonic 方式)

my_list = [[1], [2, 3], [4, 5, 6, 7]]

flat_list = []
for sublist in my_list:
    for num in sublist:
        flat_list.append(num)

print(flat_list)

输出

[1, 2, 3, 4, 5, 6, 7]
  • 创建一个空列表 flat_list
  • 使用嵌套循环访问子列表的每个元素,并将该元素附加到 flat_list 中。

示例 3:使用 itertools 包

import itertools

my_list = [[1], [2, 3], [4, 5, 6, 7]]

flat_list = list(itertools.chain(*my_list))
print(flat_list)

输出

[1, 2, 3, 4, 5, 6, 7]

使用 itertools 模块,我们可以创建一个扁平化的列表。

  • itertools 模块中的 chain() 方法返回每个可迭代对象(即子列表)的每个元素。
  • list() 将这些返回的值转换为列表。

示例 4:使用 sum()

my_list = [[1], [2, 3], [4, 5, 6, 7]]

flat_list = sum(my_list, [])
print(flat_list)

输出

[1, 2, 3, 4, 5, 6, 7]
  • sum() 方法提供两个参数:my_list 和一个空列表(即 [ ])。
  • sum() 将 my_list[ ] 结合起来生成一个扁平化的列表。

示例 5:使用 lambda 和 reduce()

from functools import reduce

my_list = [[1], [2, 3], [4, 5, 6, 7]]
print(reduce(lambda x, y: x+y, my_list))

输出

[1, 2, 3, 4, 5, 6, 7]

在上面的示例中,reduce() 将 lambda 函数应用于 my_list 的所有元素。

要了解有关 lambda 表达式的更多信息,请访问 Python 匿名/Lambda 函数


另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战