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