在 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
您想要创建一个字典,其中登记号是键每行的数据就是值。但是,使用标准字典语法在遇到重复键时会用新值覆盖旧值。
解决方案:
要处理重复键,一种常见的解决方案是使用集合模块中的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中文网其他相关文章!