如何在Python中以元素方式连接列表?

TIM*_*MEX 3 python list

l1 = [4, 6, 8]
l2 = [a, b, c]
Run Code Online (Sandbox Code Playgroud)

结果= [(4,a),(6,b),(8,c)]

我怎么做?

Gre*_*ill 12

zip标准功能可以实现这个要求:

>>> l1 = [4, 6, 8]
>>> l2 = ["a", "b", "c"]
>>> zip(l1, l2)
[(4, 'a'), (6, 'b'), (8, 'c')]
Run Code Online (Sandbox Code Playgroud)

如果您使用的是Python 3.x,则zip返回一个生成器,您可以使用list()构造函数将其转换为列表:

>>> list(zip(l1, l2))
[(4, 'a'), (6, 'b'), (8, 'c')]
Run Code Online (Sandbox Code Playgroud)


Mar*_*ers 11

使用zip.

l1 = [1, 2, 3]
l2 = [4, 5, 6]
>>> zip(l1, l2)
[(1, 4), (2, 5), (3, 6)]
Run Code Online (Sandbox Code Playgroud)

请注意,如果列表的长度不同,则结果将被截断为最短输入的长度.

>>> print zip([1, 2, 3],[4, 5, 6, 7])
[(1, 4), (2, 5), (3, 6)]
Run Code Online (Sandbox Code Playgroud)

您还可以使用带有两个以上列表的zip:

>>> zip([1, 2, 3], [4, 5, 6], [7, 8, 9])
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
Run Code Online (Sandbox Code Playgroud)

如果您有列表列表,可以zip使用星号调用:

>>> l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> zip(*l)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
Run Code Online (Sandbox Code Playgroud)