ホームページ > バックエンド開発 > Python チュートリアル > Python 辞書を作成するときに重複キーを処理するにはどうすればよいですか?

Python 辞書を作成するときに重複キーを処理するにはどうすればよいですか?

DDD
リリース: 2024-12-28 16:34:10
オリジナル
710 人が閲覧しました

How Do I Handle Duplicate Keys When Creating a Python Dictionary?

Python 辞書での重複キーの処理

Python では、辞書はキーを値にマッピングするための重要なデータ構造です。ただし、辞書は本質的に重複キーをサポートしていないため、特定の種類のデータを操作する場合に問題になる可能性があります。

問題:

次の内容を含むテキスト ファイルがあるとします。以下に示すように、さまざまな値を持つ重複した自動車登録番号:

EDF768, Bill Meyer, 2456, Vet_Parking
TY5678, Jane Miller, 8987, AgHort_Parking
GEF123, Jill Black, 3456, Creche_Parking
ABC234, Fred Greenside, 2345, AgHort_Parking
...
EDF768, Jenny Meyer, 9987, Vet_Parking
TY5678, Jo King, 8987, AgHort_Parking
ログイン後にコピー

登録番号がキーであり、各行のデータが値です。ただし、標準の辞書構文を使用すると、重複キーが見つかったときに古い値が新しい値で上書きされます。

解決策:

重複キーを処理するには、1 つの一般的な解決策があります。コレクション モジュールのdefaultdictを使用することです:

from collections import defaultdict

data_dict = defaultdict(list)
ログイン後にコピー

重複キーに単一の値を割り当てる代わりに、そのキーに関連付けられたリストに新しい値を追加します:

data_dict[regNumber].append(details)
ログイン後にコピー

これにより、各キーが値のリストに対応する辞書が作成されます。例:

data_dict = {
    'EDF768': [
        ('Bill Meyer', '2456', 'Vet_Parking'),
        ('Jenny Meyer', '9987', 'Vet_Parking'),
    ],
    'TY5678': [
        ('Jane Miller', '8987', 'AgHort_Parking'),
        ('Jo King', '8987', 'AgHort_Parking'),
    ],
    ...
}
ログイン後にコピー

この方法では、辞書内の対応するリストにアクセスすることで、特定の登録番号に関連付けられたすべてのデータにアクセスできます。

以上がPython 辞書を作成するときに重複キーを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート