[Python]Dictionaryでのデータ順序の保持

1159 ワード

最近、コーディングテストの問題をして、Python 3のDictionary資料型を使って、面接で質問されました.
当時作成されたコードはDictionaryにデータを挿入し,dictionary.items()-keyvalueをそれぞれ抽出する.
担当者はPython dictionaryの順序が元の順序に残っているかどうかを尋ね、Python 2で同じコードを実行できるかどうかを尋ねた.
最近ずっとPython 37を使用して開発または資料作成を行う
そもそも辞書資料型の順番は保存できないのでしょうか…?あわててうろたえる.
面接が終わった後、その部分が気になるので、別途調査結果を記入します.

python 3.7の正式なドキュメントを確認した後、dictオブジェクトの挿入順序保持特性を正式に宣言したとマークします.
Make it so. "Dict keeps insertion order"is the ruling. Thanks!
:挿入順序を保持します.
実際、コードを作成した後、検査結果は以下の通りです.
dict = {"a":1,"b":2,"c":3,"d":4}
print(dict)

# python2.7 출력 결과
{'a': 1, 'c': 3, 'b': 2, 'd': 4}

# python3.8 출력 결과
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
当初dictionaryはkeyとvalueが一致する資料型であり,資料の順序は重要ではないため,既存の~python 3である.第5版まで、辞書の順序はまだ保存されていません.調査によると、3.6では順序を保持する機能が追加されたようだが、正式に更新されたのは3.7だった.
python3.ディクショナリを6以前のバージョンで保持またはソートする場合は、OrderdDictを使用します.
次回はCollectionsモジュールのOrderedDictを勉強します.