【问题标题】:python: create list of tuples from lists [duplicate]python:从列表中创建元组列表[重复]
【发布时间】:2011-11-10 21:45:09
【问题描述】:

我有两个列表:

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循环......

【问题讨论】:

标签: python list tuples


【解决方案1】:

使用内置函数zip()

在 Python 3 中:

z = list(zip(x,y))

在 Python 2 中:

z = zip(x,y)

【讨论】:

    【解决方案2】:

    您正在寻找zip builtin 函数。 来自文档:

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

    【讨论】:

      【解决方案3】:

      您正在使用 zip 功能。

      直接取自问题:How to merge lists into a list of tuples in Python?

      >>> list_a = [1, 2, 3, 4]
      >>> list_b = [5, 6, 7, 8]
      >>> zip(list_a,list_b)
      [(1, 5), (2, 6), (3, 7), (4, 8)]
      

      【讨论】:

        猜你喜欢
        • 2015-10-16
        • 2018-11-21
        • 1970-01-01
        • 2017-03-21
        • 2020-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多