【问题标题】:Merging a list and a tuple in list合并列表和列表中的元组
【发布时间】:2021-12-13 00:08:36
【问题描述】:

假设我有以下列表:

l1 = [['a','b','c'],['x','y','z'],['i','j','k']]
l2 = [(0,0.1),(0,0.2),(2,0.3),(2,0.4),(1,0.5),(0,0.6)]

我想合并l2 的键和l1 的索引上的两个列表,这样我得到:

[[0.1,['a','b','c'],
[0.2,['a','b','c'],
[0.3,['i','j','k'],
[0.4,['i','j','k'],
[0.5,['x','y','z'],
[0.6,['a','b','c']]

我想知道这是怎么做到的?因为合并不是都在键上。

【问题讨论】:

    标签: python list dictionary tuples


    【解决方案1】:

    一个简单的理解就可以了:

    [[v, l1[i]] for i, v in l2]
    # [[0.1, ['a', 'b', 'c']], 
    #  [0.2, ['a', 'b', 'c']], 
    #  [0.3, ['i', 'j', 'k']], 
    #  [0.4, ['i', 'j', 'k']], 
    #  [0.5, ['x', 'y', 'z']], 
    #  [0.6, ['a', 'b', 'c']]]
    

    【讨论】:

      【解决方案2】:

      带有一些索引的列表理解会很好地做到这一点

      l1 = [['a', 'b', 'c'], ['x', 'y', 'z'], ['i', 'j', 'k']]
      l2 = [(0, 0.1), (0, 0.2), (2, 0.3), (2, 0.4), (1, 0.5), (0, 0.6)]
      
      result = [[value, l1[idx]] for idx, value in l2]
      

      for 循环等价物

      result = []
      for idx, value in l2:
          l1_item = l1[idx]
          result.append([value, l1_item])
      

      【讨论】:

        【解决方案3】:
        l1 = [['a','b','c'],['x','y','z'],['i','j','k']]
        l2 = [(0,0.1),(0,0.2),(2,0.3),(2,0.4),(1,0.5),(0,0.6)]
        
        print([[v,l1[k]] for k,v in l2])
        

        【讨论】:

          猜你喜欢
          • 2021-10-21
          • 2016-10-08
          • 2014-06-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-15
          • 1970-01-01
          相关资源
          最近更新 更多