【问题标题】:Create dictionary from list of tuples using second element使用第二个元素从元组列表创建字典
【发布时间】:2020-06-29 11:55:14
【问题描述】:

我有一个这样的元组列表:

new = [[('name', 'n1')], [('value', 'v1')], [('name', 'n2')], [('value', 'v2')], [('name', 'n3')], [('value', 'v3')]]

我想将第一个'name'元组映射到第一个'value'元组,第二个到第二个等等。我一直在做的是这样的:

res = dict(zip(new[0],new[1]))

这给了我{('name', 'n1'):('value', 'v1'), ('name', 'n2'):('value', 'v2'), ('name', 'n3'):('value':'v3')}。这很接近,但我真的只想要这个:{'n1':'v1', 'n2':'v2', 'n3':'v3'}。 我只想要元组中的第二个元素。我该怎么做?

【问题讨论】:

    标签: python dictionary tuples


    【解决方案1】:

    试试这个,

    print(dict((x[0][1], y[0][1]) for x, y in zip(new[::2], new[1::2])))
    

    {'n1': 'v1', 'n2': 'v2', 'n3': 'v3'}
    

    【讨论】:

      【解决方案2】:

      给你:

      res= {new[2*i][0][1]:new[2*i+1][0][1] for i in range(len(new)//2)}
      
      >>> res
      {'n1': 'v1', 'n2': 'v2', 'n3': 'v3'}
      

      【讨论】:

        【解决方案3】:

        试试这个:

        new = [[('name', 'n1')], [('value', 'v1')], [('name', 'n2')], [('value', 'v2')], [('name', 'n3')], [('value', 'v3')]]
        output = {}
        while new:
            key = new.pop(0)
            value = new.pop(0)
            output[key[0][1]] = value[0][1]
        
        print(output) 
        # output: {'n1': 'v1', 'n2': 'v2', 'n3': 'v3'}
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-02-11
          • 2014-01-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多