【问题标题】:How to map i-th elements of tuples in a list to keys in another list to form a dictionary如何将列表中元组的第 i 个元素映射到另一个列表中的键以形成字典
【发布时间】:2020-03-30 07:59:24
【问题描述】:

我想将给定列表中元组的第 i 个元素映射到另一个列表中可用的键以形成字典。

下面是我拥有的代码(它无法正常工作,因为它正在更新值,所以我最终得到的是最新值,而不是我所追求的):

k = [1,2,3]
v = [('a', 'b', 'c'), ('d', 'e', 'f')]

d = {}
for i, j in enumerate(k):
    if len(v) > 1:
        for k in range(len(v)):
            d[j] = v[k][i]
    else:
        d[j] = v[0][i]
print(d)
#{1: 'd', 2: 'e', 3: 'f'}

我想要这个输出:

{1: ('a', 'd'), 2: ('b', 'e'), 3: ('c', 'f')}

感谢任何提示。

【问题讨论】:

    标签: python python-3.x list dictionary tuples


    【解决方案1】:

    使用zipdict 理解

    例如:

    k = [1,2,3]
    v = [('a', 'b', 'c'), ('d', 'e', 'f')]
    
    print({i: v for i, v in zip(k, zip(*v))})
    #or
    print(dict(zip(k, zip(*v))))
    

    输出:

    {1: ('a', 'd'), 2: ('b', 'e'), 3: ('c', 'f')}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-09
      • 1970-01-01
      • 2021-08-22
      • 2019-05-17
      • 1970-01-01
      • 2011-01-13
      • 1970-01-01
      相关资源
      最近更新 更多