python:将2个有序列表组合成元组列表

时间:2016-07-06 17:33:31

标签: python list list-comprehension

我有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]

这些都不起作用。我只是想知道这是否可能,或者我是否必须使用循环。

5 个答案:

答案 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)
相关问题