我有2个列表要组合成单个元组列表,以便维护订单并result[i]
为(first[i], second[i])
。假设两个列表总是具有相同的大小。有没有办法使用列表理解来做到这一点?例如:
>>> first = [1,2,3]
>>> second = [4,5,6]
>>> combine(first, second)
[(1,4), (2,5), (3,6)]
我尝试了一些事情
[(i,j) for i in first, j in second]
[(i for i in first, j for j in second)]
[(i,j) for i,j in first, second]
这些都不起作用。我只是想知道这是否可能,或者我是否必须使用循环。
答案 0 :(得分:8)
使用zip:
list(zip(first, second))
Out[384]: [(1, 4), (2, 5), (3, 6)]
答案 1 :(得分:6)
Python有一个功能:
>>> zip(first, second)
[(1, 4), (2, 5), (3, 6)]
zippedy-斗DAH
答案 2 :(得分:2)
您可以使用内置的zip功能:
>>> first = [1,2,3]
>>> second = [4,5,6]
>>> list(zip(first, second))
[(1,4), (2,5), (3,6)]
答案 3 :(得分:1)
>>> first = [1,2,3]
>>> second = [4,5,6]
>>> from itertools import izip
>>> gen = izip(first, second)
>>> [(i, j) for i, j in gen]
[(1, 4), (2, 5), (3, 6)]
或者也用于列表而不是元组,使用numpy
>>> first = [1,2,3]
>>> second = [4,5,6]
>>> list =zip(first,second)
>>> list
[(1, 4), (2, 5), (3, 6)]
答案 4 :(得分:0)
使用izip:
.Address(ReferenceStyle:=xlR1C1)