我不明白这一点,它会打扰我,直到我这样做。python字典中返回值的随机顺序
这Python代码计算每个字符出现在“消息”变量的次数:
message = 'Some random string of words'
dictionary= {}
for character in message.upper():
dictionary.setdefault(character,0)
dictionary[character] = dictionary[character] + 1
print(dictionary)
如果你运行这个多次,你会发现数以看似随机的顺序每次返回。为什么是这样?我会认为循环应该每次从字符串的开始处开始,并以一致的顺序返回值......但它们不会。影响字符串处理顺序的setdefault()
,print()
或upper()
方法中是否存在一些随机性元素?
词典是键值对** set **。不是一个列表。一套。并且集合没有顺序。 – SuperSaiyan
http://stackoverflow.com/questions/1867861/python-dictionary-keep-keys-values-in-same-order-as-declared – Abdou
@SuperSaiyan - 谢谢你的反馈。我明白字典不是命令的,我更想理解为什么。对我来说,相似的直觉告诉我,相同的基本代码会以随机顺序返回值......我对这种情况的内部情况感到好奇。 – DCaugs