示例 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 函数。
另请阅读