让我们说我有三个清单:
List1 = [1,2,3]
List2 = [4,5,6]
List3 = [7,8,9]
现在我想创建一个包含元组元素的新列表,但是使用我之前列表中的数据:
NewList = [(1,4,7), (2,5,6), (3,6,9)]
如何做到这一点?
答案 0 :(得分:1)
您所需要的只是zip
:
>>> List1 = [1,2,3]
>>> List2 = [4,5,6]
>>> List3 = [7,8,9]
>>> zip(*(List1, List2, List3))
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
>>>
另外,您会注意到第二个元组的第三个元素是不同的。我认为你的问题有一个错字。
答案 1 :(得分:0)
如果性能对您很重要,我建议使用itertools.izip
代替内置zip()
:
>>> l=[List1,List2,List3]
>>> from itertools import izip
>>> list(izip(*l))
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
答案 2 :(得分:0)
这不是最佳方式,只是作为替代方案。
>>> NewList = []
>>> i = 0
>>> while i <= len(List1)-1 :
NewList.append(tuple(j[i] for j in (List1, List2, List3)))
i+=1
>>>NewList
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]