Python 字典(Dictionary)是一种无序、可变的序列类型,它以键值对的形式存储数据。字典中的元素是按照键(key)来存储和访问的。在访问字典的时候,如果键不存在,会抛出一个 KeyError
异常。为了避免这种情况的发生,Python 中提供了字典默认值(default value)的用法。本文将为您详细介绍 Python 字典默认值的使用方法。
默认值的设置
在 Python 字典中,我们可以使用 get()
方法来获取指定键对应的值。如果这个键不存在,可以设置一个默认值作为 get()
方法的第二个参数。下面是两个例子:
# 获取已存在的键对应的值
d1 = {'a': 1, 'b': 2, 'c': 3}
print(d1.get('a', 0)) # 1
# 获取不存在的键对应的值
d2 = {}
print(d2.get('a', 0)) # 0
在上面的例子中,d1
字典中已存在键 "a"
,因此调用 get()
方法时,会返回对应的值 1
;而在 d2
字典中,不存在键 "a"
,因此调用 get()
方法时,会返回默认值 0
。
我们也可以使用字典的 setdefault()
方法来设置默认值,如果键不存在,则自动将键-值对添加到字典中。下面是一个示例:
d = {'a': 1, 'b': 2}
d.setdefault('c', 3)
print(d) # {'a': 1, 'b': 2, 'c': 3}
在上面的例子中,字典 d
中不存在键 "c"
,因此调用 setdefault()
方法时,会自动将键-值对 ("c", 3)
添加到字典中。
setdefault()
方法的语法如下:
dict.setdefault(key, default=None)
其中,key
表示要查找的键,default
表示如果键不存在的话,设置的默认值。如果默认值不指定,则默认为 None
。
defaultdict 的使用
Python 还提供了一种特殊的字典类型 defaultdict
,它可以指定默认值的类型,并且在获取不存在的键时,会自动创建对应类型的默认值。下面是一个示例:
from collections import defaultdict
d = defaultdict(int)
d['a'] += 1
d['b'] += 2
print(d) # defaultdict(<class 'int'>, {'a': 1, 'b': 2,})
在上面的例子中,我们通过 defaultdict(int)
创建了一个字典 d
,并对其键 "a"
和 "b"
分别进行了累加操作。由于默认值类型为 int
,因此在获取不存在的键时,会创建出默认值 0 并进行累加操作。
在 defaultdict
构造函数中,我们需要指定默认值类型。可以指定任何可调用对象作为默认值类型,比如 list
、set
等等。下面是一个使用 list
作为默认值类型的示例:
d = defaultdict(list)
d['a'].append(1)
d['b'].append(2)
d['c'] = [3]
print(d) # defaultdict(<class 'list'>, {'a': [1], 'b': [2], 'c': [3]})
在上面的例子中,我们通过 defaultdict(list)
创建了一个字典 d
,并对其键 "a"
和 "b"
分别进行了 append()
操作。由于默认值类型为 list
,因此在获取不存在的键时,会创建出默认值 []
并进行 append()
操作。
总结
本文主要介绍了 Python 字典默认值的使用方法,包括在 get()
方法和 setdefault()
方法中设置默认值,以及使用 defaultdict
类型创建带有默认值的字典。在实际编程中,应该根据具体情况选择适当的方法来设置默认值,以提高代码的可读性和效率。