ホームページ > バックエンド開発 > Python チュートリアル > Python の「defaultdict」は辞書内の重複キーをどのように処理できますか?

Python の「defaultdict」は辞書内の重複キーをどのように処理できますか?

Susan Sarandon
リリース: 2024-12-21 03:11:10
オリジナル
610 人が閲覧しました

How Can Python's `defaultdict` Handle Duplicate Keys in Dictionaries?

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
...
ログイン後にコピー

辞書を作成するとよいでしょう。登録番号をキー、データを値として使用します。ただし、単純に dict[key] = 値の割り当てを使用すると、重複キーに関連付けられた既存の値が上書きされます。

解決策:defaultdict

コレクション モジュールの Python の defaultdict を使用すると、次のことが可能になります。この制限を克服するために。これは、未指定のキーのデフォルト値を提供する dict のサブクラスです。

これを使用するには、

data_dict = {}
ログイン後にコピー

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

に置き換えるだけです。値を直接割り当てるには、append() メソッドを使用します。

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

これにより、関連付けられた値のリストが作成されます。各重複キーを使用して、それらのキーに関連するすべてのデータを効果的に保存します。

例:

次のコードは、defaultdict を使用してサンプル データから辞書を作成します。

from collections import defaultdict

data_dict = defaultdict(list)

for line in data_list:
    regNumber = line[0]
    # ... (rest of the code unchanged)
    data_dict[regNumber].append(details)
ログイン後にコピー

これにより、各登録番号 (キー) が関連データ (値) のリストにマッピングされる辞書が作成されます。

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

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