在python 3中正确使用itertools

时间:2018-10-10 18:20:40

标签: python python-3.x

我正在尝试扩展以下列表
[(1, [('a', '12'), ('b', '64'), ('c', '36'), ('d', '48')]), (2, [('a', '13'), ('b', '26'), ('c', '39'), ('d', '52')])]

[(1,a,12),(1,b,24),(1,c,36),(1,d,48),(2,a,13),(2,b,26),(2,c,39),(2,d,52)]

我在python 3中使用了zip(itertools.cycle()),但获得了一个zip对象引用。我还有其他方法可以做到吗?这适用于python 2

2 个答案:

答案 0 :(得分:0)

zip对象是可迭代的。就像Python 3中的其他API一样,该API现在返回一个可迭代的对象(如生成器),它懒惰地计算其输入,而不是将整个结果返回到list中。

在大多数情况下,您可以像以前一样使用对象。

如果需要列表,只需在list()对象上调用zip

result_list = list(zip(itertools.cycle(...)))

答案 1 :(得分:0)

假设已正确创建zip对象,则可以执行list(zip_object)[*zip_object]来获取列表。