python合并列表的1个键和许多值字典与列表的值

时间:2018-04-25 17:11:21

标签: python list dictionary

我有一个字典,其中包含一个键和每个键的多个值

d={'POU': ['KO', '0.9.8', '0.99', '0.54']
   'TAN': ['LA', '9', '7.5', '0.0']
   'EST': ['RA', '2', '6.5', '10.01']}

和一系列数字:

x = [**1**, **2**, **3**]

如何将列表与字典合并,以便在每行末尾附加每个列表的值:

d={'POU': ['KO', '0.9.8', '0.99', '0.54', **1**]
   'TAN': ['LA', '9', '7.5', '0.0', **2**]
   'EST': ['RA', '2', '6.5', '10.01', **3**]}

按照相同的顺序。

2 个答案:

答案 0 :(得分:3)

正如jpp在他的评论中正确提到的,以下解决方案仅适用于OrderedDicts或从Python 3.7开始,否则正常的dicts不会保留顺序:

for i, v in enumerate(d):
    d[v].append(x[i])

d
Out[1]: 
{'EST': ['RA', '2', '6.5', '10.01', '**3**'],
 'POU': ['KO', '0.9.8', '0.99', '0.54', '**1**'],
 'TAN': ['LA', '9', '7.5', '0.0', '**2**']}

答案 1 :(得分:0)

使用简单的迭代。

<强>实施例

d={'POU': ['KO', '0.9.8', '0.99', '0.54'],
   'TAN': ['LA', '9', '7.5', '0.0'],
   'EST': ['RA', '2', '6.5', '10.01']}

x = [1,2, 3]

c = 0
for k,v in d.items():
    v.append(x[c])
    c+=1
print(d)

<强>输出:

{'TAN': ['LA', '9', '7.5', '0.0', 1], 'POU': ['KO', '0.9.8', '0.99', '0.54', 2], 'EST': ['RA', '2', '6.5', '10.01', 3]}