Python中字典的順序問題(為什麼實踐發現字典的遍歷和方法popitem並不是隨機的?)

Khadgar發表於2018-10-27

據稱,字典的遍歷是沒有一定順序的,但是我在實踐中發現,它總是從第一組元素開始依次遍歷到最後一個元素。

my_dict = dict.fromkeys(range(10**5))

i = 0

for k, v in my_dict.items():

... if k != i:

... print(k, i)

... print("字典的遍歷順序被打亂了!")

... break

... i += 1

... else:

... print("字典的遍歷是按順序進行的。")

... 字典的遍歷是按順序進行的。

相應的,據說popitem方法彈出的順序也是隨機的,但我在實踐中發現,它總是彈出字典中的最後一項:

my_dict = dict.fromkeys(range(10**5))

for i in range(10**5):

... key = my_dict.popitem()[0]

... if i + key != 10**5 - 1:

... print("i = {}, key = {}.".format(i, key))

... print("方法popitem彈出的順序被打亂了。")

... break

... else:

... print("方法popitem彈出的順序不是隨機的。")

...

方法popitem彈出的順序不是隨機的。

相關文章