Python中的默认字典是一种特殊的字典类,它在创建的时候提供一个默认值作为所有键的初始值。如果你访问一个不存在的键,它会返回默认值而不是抛出KeyError异常。
在Python 3.0之前,要实现默认值字典需要自己编写代码,但是在Python 3.0之后,官方库中就提供了collections模块,其中包括了一个名为"defaultdict"的类。
下面是一个例子,展示如何使用defaultdict:
from collections import defaultdict dd = defaultdict(int) dd["hello"] += 1 dd["world"] += 1 print(dd["hello"]) # 输出1 print(dd["world"]) # 输出1 print(dd["foo"]) # 输出0,而不是抛出KeyError异常
在上面的例子中,我们创建了一个defaultdict(int)实例,并将其赋给变量dd。这个defaultdict实例会在访问不存在的键时将其初始值设置为0,因为我们传给defaultdict的参数是int。
接下来,我们可以像使用普通的字典一样向dd中写入键值对。当我们访问存在的键时,它会返回对应的值。在访问不存在的键时,它会返回0而不是抛出KeyError异常。
默认字典的第一个参数可以是任何可调用对象,例如lambda表达式、函数或者类的构造函数。下面是一个使用lambda表达式作为初始值的例子:
dd = defaultdict(lambda: "Unknown") dd["name"] = "Alice" print(dd["name"]) # 输出"Alice" print(dd["age"]) # 输出"Unknown",而不是抛出KeyError异常
在这个例子中,我们创建了一个defaultdict(lambda: "Unknown")实例,访问不存在的键时它会返回"Unknown"。我们向dd中写入一个键值对"name": "Alice",当我们访问该键时它会返回"Alice"。
总之,Python中的默认字典可以方便地处理不存在的键的情况,避免了KeyError异常的发生,可以大大简化代码。
本文可能转载于网络公开资源,如果侵犯您的权益,请联系我们删除。
0