ホームページ >バックエンド開発 >Python チュートリアル >Python 辞書からソートされ順序付けされたコレクションを作成するにはどうすればよいですか?

Python 辞書からソートされ順序付けされたコレクションを作成するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-28 22:28:16726ブラウズ

How Can I Create a Sorted, Ordered Collection from a Python Dictionary?

キーによる辞書のソート: 順序付きコレクションの取得

Python 3.7 を導入しない限り、Python の辞書の本質的な性質は順序付けされていません。 (キー、値) ペアを並べ替えることが解決策のように見えるかもしれませんが、要素を辞書に格納する際に並べ替えられた順序を維持することは実現不可能であることを認識することが重要です。

以下に基づいて順序付けされたコレクションをシームレスに確立するにはキーの値を考慮する場合、最適なアプローチとしては OrderedDict クラスの使用が優先されます。このクラスは、要素の挿入順序を保持する独自の機能を備えています:

import collections

d = {2: 3, 1: 89, 4: 5, 3: 0}

# Construct an OrderedDict from sorted key-value pairs
od = collections.OrderedDict(sorted(d.items()))

print(od)  # OrderedDict([(1, 89), (2, 3), (3, 0), (4, 5)])

od の出力表現は異なる場合がありますが、その後の対話中に望ましい順序が維持されます:

print(od[1])  # 89
print(od[3])  # 0

for k, v in od.items():
    print(k, v)  # 1 89, 2 3, 3 0, 4 5

Python 3 ユーザー向けの考慮事項

Python 3 ユーザーは、互換性を維持するために OrderedDict を反復処理する場合は、.iteritems() の代わりに .items() メソッドを使用します:

for k, v in od.items():
    print(k, v)  # 1 89, 2 3, 3 0, 4 5

以上がPython 辞書からソートされ順序付けされたコレクションを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。