請問為什麼使用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讲师
不要過於糾結字典的排序為何不一樣,字典本來就是無序的,如果要有序則需要在返回之前進行排序。在python3中一般會做這樣1個操作來減少對記憶體的使用。
因為這個
https://docs.python.org/3/wha...
cython 3.6 換了種 dict 的實作方式,提升了效能,而鍵名自動排序是其附帶的一個小小的副作用。
不要過於糾結字典的排序為何不一樣,字典本來就是無序的,如果要有序則需要在返回之前進行排序。在python3中一般會做這樣1個操作來減少對記憶體的使用。
因為這個
https://docs.python.org/3/wha...
cython 3.6 換了種 dict 的實作方式,提升了效能,而鍵名自動排序是其附帶的一個小小的副作用。