首页 >后端开发 >Python教程 >Python 的 defaultdict 如何处理字典中的重复键?

Python 的 defaultdict 如何处理字典中的重复键?

Susan Sarandon
Susan Sarandon原创
2024-12-21 03:11:10616浏览

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] = 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn