说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
itertools.chain.from_iterable()
是 Python itertools 模块中的一个函数,用于将嵌套的可迭代对象展平(flatten),生成一个单一的迭代器。这个函数特别适用于处理包含多个子可迭代对象的可迭代对象,例如嵌套列表或列表的列表。
它其实是一个类方法:
classmethod chain.from_iterable(iterable)
构建类似 chain() 迭代器的另一个选择。从一个单独的可迭代参数中得到链式输入,该参数是延迟计算的。大致相当于:
def from_iterable(iterables):
# chain.from_iterable(['ABC', 'DEF']) → A B C D E F
for iterable in iterables:
yield from iterable
iterable:一个包含子可迭代对象的可迭代对象。例如,列表的列表、元组的列表等。
import itertools
nested_list = [[1, 2, 3], [4, 5], [6, 7, 8]]
flattened = itertools.chain.from_iterable(nested_list)
print(list(flattened))
# 输出:
# [1, 2, 3, 4, 5, 6, 7, 8]
import itertools
list_of_tuples = [(1, 2), (3, 4, 5), (6,)]
flattened = itertools.chain.from_iterable(list_of_tuples)
print(list(flattened))
# 输出:
# [1, 2, 3, 4, 5, 6]
import itertools
nested_generators = ((x for x in range(3)), (x for x in range(3, 6)))
flattened = itertools.chain.from_iterable(nested_generators)
print(list(flattened))
# 输出:
# [0, 1, 2, 3, 4, 5]
更新时间:2024-07-03 21:30:32 标签:python itertools 展平