【发布时间】:2016-08-12 02:07:46
【问题描述】:
在 python 中是否有一种简单的方法(使用 itertools 或其他方式)将嵌套的可迭代 f 转换为其相应的列表或元组?我想保存f,这样我就可以对其进行多次迭代,这意味着如果f 的某些嵌套元素是生成器,我就会遇到麻烦。
我将给出一个输入/输出示例。
>>> g = iter(range(2))
>>> my_input = [1, [2, 3], ((4), 5), [6, g]]
>>> magical_function(my_input)
[1, [2, 3], [[4], 5], [6, [0, 1]]]
如果输出也包含元组,那就没问题了。问题是迭代g“消耗”它,所以它不能再次使用。
【问题讨论】:
-
嵌套迭代的“对应列表”是什么意思?你想扁平化迭代吗?如果是这样,您想要一级展平、n 级展平还是递归展平?
-
我不想要任何扁平化。 “对应列表”的意思是我想保留
f的嵌套结构。 -
你能否提供一些代码示例,你尝试了什么以及你想从中得到什么?
-
至少,请提供您希望转换的“之前”和“之后”的示例。
-
我认为这里不需要示例代码。这个问题很简单(虽然我不确定答案是否)
标签: python list generator iterable