gpt4 book ai didi

Python成语链接(展平)有限迭代的无限迭代?

转载 作者:IT老高 更新时间:2023-10-28 20:30:39 28 4
gpt4 key购买 nike

假设我们有一个返回列表(或有限迭代器)的迭代器(无限迭代器),例如由

返回的迭代器
infinite = itertools.cycle([[1,2,3]])

什么是获得迭代器(显然是无限的)的一个好的 Python 习惯用法,它将从第一个迭代器返回每个元素,然后从第二个迭代器返回每个元素,依此类推。在上面的示例中,它将返回 1, 2,3,1,2,3,...。迭代器是无限的,所以 itertools.chain(*infinite) 不起作用。

相关

最佳答案

从 Python 2.6 开始,您可以使用 itertools.chain.from_iterable :

itertools.chain.from_iterable(iterables)

您也可以使用嵌套生成器推导来做到这一点:

def flatten(iterables):
return (elem for iterable in iterables for elem in iterable)

关于Python成语链接(展平)有限迭代的无限迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/120886/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com