Python:从列表中创建元组列表

43

我有两个列表:

x = ['1', '2', '3']
y = ['a', 'b', 'c']

我需要从这些列表中创建一个元组列表,如下:

z = [('1','a'), ('2','b'), ('3','c')]

我尝试按照以下方式进行:

z = [ (a,b) for a in x for b in y ]

但导致了:

[('1', '1'), ('1', '2'), ('1', '3'), ('2', '1'), ('2', '2'), ('2', '3'), ('3', '1'), ('3', '2'), ('3', '3')]

即从x中的每个元素与y中的每个元素组成元组列表... 有什么正确的方法可以实现我想要做的事情吗?谢谢...

编辑:在编辑之前提到的另外两个重复是我的错,我不小心将它缩进到了另一个for循环中...


3
这个问题已经被问过了:https://dev59.com/SXE95IYBdhLWcg3wN7Ov。 - mal-wan
抱歉,搜索中找不到相关内容,谢谢 :) - amyassin
3个回答

62

使用内置函数zip()

在Python 3中:

z = list(zip(x,y))

在Python 2中:

z = zip(x,y)

12

您正在寻找 zip内置函数
来自文档:

>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> zipped
[(1, 4), (2, 5), (3, 6)]

10

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接