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']}
有人可以告诉我我要去哪里错了。任何帮助是极大的赞赏。谢谢
答案 0 :(得分:1)
Python词典中的键应该是唯一的。您重复了三次相同的密钥'animal'
,Python保留了 last 1 动物密钥的值。在official documentation中,
最好将字典视为一组键:值对,要求键是唯一的(在一个字典中)。
1。请注意, last 也可能非常模糊。视您使用的Python版本而定,它可能是一致的,但通常不能保证。
答案 1 :(得分:0)
此行:
var markupExt = Viewer.getExtension("Autodesk.Viewing.Markups ore");
var styleObj = Autodesk.Viewing.Extensions.Markups.Core.Utils.createStyle([...], markupExt)
与此完全相同:
names={"animal":"cat","animal":"dog","animal":"rat","bird":"humming"}
将项目添加到names={"animal":"rat","bird":"humming"}
时,如果键中已经有键,则该值将被覆盖。
答案 2 :(得分:0)
正如@Vijay M的回答中所述,python词典中的键应该是唯一的。我想您正在寻找这样的解决方案:
names = {"cat": "animal", "dog": "animal", "rat": "animal", "humming": "bird"}
names_dict={}
for k, v in names.items():
names_dict.setdefault(v,[]).append(k)
print(names_dict)
请注意,值和键已交换。
希望这会有所帮助。