【问题标题】:Acessing elements in a list of tuples访问元组列表中的元素
【发布时间】:2021-03-03 08:40:05
【问题描述】:

一直在搜索该网站,但我找不到似乎对我有用的解决方案。我有一个我假设是元组的列表,每个元组中有 2 个元素。我想用元组遍历列表并将每个元组分解成一个列表。

数据:

[('A', 1), ('B', 2), ('C', 3)]

预计有 2 个列表计数:

['A', 'B', 'C']
[1, 2, 3] 

【问题讨论】:

    标签: python python-3.x list tuples


    【解决方案1】:

    以 Python 方式执行此操作的最漂亮方法实际上是解压缩元组

    zipped = [("a", 1), ("b", 2), ("C", 3)]    
    unzipped_object = zip(*zipped)
    unzipped_list = list(unzipped_object)
    print(unzipped_list)
    

    输出:

    [('a', 'b', 'C'), (1, 2, 3)]

    【讨论】:

      【解决方案2】:

      使用列表推导:

      lst = [('A', 1), ('B', 2), ('C', 3)] 
      l1 = [elt[0] for elt in lst]
      l2 = [elt[1] for elt in lst]
      

      或者可以在一个循环中完成:

      l1, l2 = [], []
      for elt in lst:
          l1.append(elt[0])
          l2.append(elt[1])
      

      【讨论】:

        【解决方案3】:

        如果您在理解列表时遇到困难,这里是长且更易读的版本。 另一个优点是这个版本使用了一个 for 循环。

        lst = [('A', 1), ('B', 2), ('C', 3)] 
        
        list1 = []
        list2 = []
        for couple in lst:
            list1.append(couple[0])
            list2.append(couple[1])
        
        print(list1)
        print(list2)
        

        【讨论】:

          【解决方案4】:

          你可以使用 for 循环。

          lst = [('A', 1), ('B', 2), ('C', 3)]
          l1 = []
          l2 = []
          for tup in lst:
              l1.append(tup[0])
              l2.append(tup[1])
          
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-09-12
            • 1970-01-01
            相关资源
            最近更新 更多