克服 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] = value 赋值会覆盖与重复键关联的现有值。
解决方案: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中文网其他相关文章!