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

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

DDD
DDDオリジナル
2024-12-28 16:34:10714ブラウズ

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 サイトの他の関連記事を参照してください。

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