搜尋

首頁  >  問答  >  主體

請問python2.7和3.6同樣是for迴圈輸出字典內容為什麼排序不一樣

請問為什麼使用2.7和3.6用相同的for輸出字典內容排序不一樣?

d = {'Adam':95,'Lisa':85,'Bart':59}
for k,v in d.items():
  print k,':',v
  #3.6的是print(k,':',k)

2.7輸出的內容

Lisa : 85
Adam : 95
Bart : 59

而3.6則是正常顯示

Adam:95
Lisa:85
Bart:59
PHP中文网PHP中文网2753 天前592

全部回覆(2)我來回復

  • 某草草

    某草草2017-05-18 10:47:20

    不要過於糾結字典的排序為何不一樣,字典本來就是無序的,如果要有序則需要在返回之前進行排序。在python3中一般會做這樣1個操作來減少對記憶體的使用。

    回覆
    0
  • 黄舟

    黄舟2017-05-18 10:47:20

    因為這個

    https://docs.python.org/3/wha...

    cython 3.6 換了種 dict 的實作方式,提升了效能,而鍵名自動排序是其附帶的一個小小的副作用。

    回覆
    0
  • 取消回覆