python - 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 中该键关联的最后一个值
解决方案
您可以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']}
推荐阅读
- javascript - 如何在 react js 中动态更改网站的标题(也在源代码中)?
- javascript - 就性能而言,使用一个可重用组件与每次都导入文件
- css - 带有 display:block 的可滚动 div 的中心内容垂直
- c++ - typedef 在具有成员用法的模板化函数上
- logrotate - 我希望我的日志轮换以删除超过 7 天的日志文件
- reactjs - 我需要使用 jest-fetch-mock 来模拟它
- solr - 我在 solr 搜索引擎中以“/”正斜杠“Non-Conformity”结尾的搜索词遇到问题
- c# - 未使用 C# .Net Core 从 NotificationCenter 接收 NSWorkspaceWillSleepNotification
- android - Firebase onDataChange() 未执行
- javascript - 带有内部数组问题的 Javascript 对象