【问题标题】:python - get list of tuples first index?python - 获取元组列表第一个索引?
【发布时间】:2012-05-30 21:45:46
【问题描述】:

返回以下内容的最紧凑方式是什么:

给定一个元组列表,返回一个由元组第一个(或第二个,无关紧要)元素组成的列表。

为:

[(1,'one'),(2,'two'),(3,'three')]

返回列表将是

[1,2,3]

【问题讨论】:

    标签: python list tuples


    【解决方案1】:
    >>> tl = [(1,'one'),(2,'two'),(3,'three')]
    >>> [item[0] for item in tl]
    [1, 2, 3]
    

    【讨论】:

      【解决方案2】:
      >>> mylist = [(1,'one'),(2,'two'),(3,'three')]
      >>> [j for i,j in mylist]
      ['one', 'two', 'three']
      >>> [i for i,j in mylist]
      [1, 2, 3]
      

      这是使用list comprehension (have a look at this link)。因此它会遍历mylist 中的元素,依次将ij 设置为元组中的两个元素。它实际上等同于:

      >>> newlist = []
      >>> for i, j in mylist:
      ...     newlist.append(i)
      ... 
      >>> newlist
      [1, 2, 3]
      

      【讨论】:

      【解决方案3】:

      如果两者都需要,请使用 zip

      >>> r=(1,'one'),(2,'two'),(3,'three')
      >>> zip(*r)
      [(1, 2, 3), ('one', 'two', 'three')]
      

      【讨论】:

      • @bourbaki4481472 在 Python 3 中是:list(zip(*r))
      【解决方案4】:

      你也可以试试这个..

      dict(my_list).keys()
      

      【讨论】:

      • 永远不要这样做。因为索引会改变。
      • @Shameem 请举例说明。
      • 对不起,我没有完整阅读这个问题。我的意思是输出列表的索引将与输入列表不同。但他并不重要。
      【解决方案5】:

      试试这个。

      >>> list(map(lambda x: x[0], my_list))
      

      【讨论】:

        猜你喜欢
        • 2013-12-04
        • 2019-04-19
        • 1970-01-01
        • 1970-01-01
        • 2020-07-31
        • 2019-05-11
        • 2018-06-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多