我不明白這一點,它會打擾我,直到我這樣做。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