首页 > 解决方案 > Python:创建一个字典,其中键有多个值

问题描述

我遇到的问题很难解释,很容易理解:

我有一个元组列表:

L=[('a','111'),('b','222'),('a','333'),('b','444')]

从这个列表中,我想创建一个字典,其中键是元组的第一个元素('a'和'b'),并且关联的值在一个列表中:

预期输出:

{'a':['111','333'],'b':['222','444']}

我怎么解决这个问题?

d={}
for x in range (len(L)):
    d[L[x][0]]=[L[x][1]]
return d

但正如您可以轻松理解的那样,输出将不完整,因为列表将仅显示与 L 中该键关联的最后一个值

标签: pythonpython-3.xdictionary

解决方案


您可以setdefault()第一次使用在字典中设置密钥。然后附加您的值:

L=[('a','111'),('b','222'),('a','333'),('b','444')]

d = {}
for key, value in L:
    d.setdefault(key, []).append(value)

print(d)
# {'a': ['111', '333'], 'b': ['222', '444']}

推荐阅读