首页 > 解决方案 > python字典循环多个值并将它们作为单个键的单个列表值返回

问题描述

names={"animal":"cat","animal":"dog","animal":"rat","bird":"humming"}
names_dict={}
for k,v in names.items():
    names_dict.setdefault(k,[]).append(v)   
print (names_dict)

我想要的输出应该是:

{'animal': ['rat','cat','dog'], 'bird': ['humming']}

但我得到的输出是这个

{'animal': ['rat'], 'bird': ['humming']}

有人可以告诉我我做错了什么吗?

标签: pythondictionary

解决方案


Python 字典中的键应该是唯一的。您重复了'animal'三次相同的键,Python 保留了最后1 个动物键的值。从官方文档

最好将字典视为一组键:值对,并要求键是唯一的(在一个字典中)。


1. 注意last也可以很模糊。根据您拥有的 Python 版本,它可能是一致的,但通常不能保证。


推荐阅读