如果不使用 defaultdict
,而是使用普通的字典(dict
),你可以使用 setdefault
方法或者 if
语句来判断键是否存在,并在需要时手动创建键并关联默认值。
以下是使用 setdefault
方法的示例:
my_dict = {}
# 使用 setdefault 判断键是否存在,如果不存在则创建并关联默认值
my_dict.setdefault('key1', []).append(1)
my_dict.setdefault('key2', []).append(2)
print(my_dict)
# 输出: {'key1': [1], 'key2': [2]}
在上述例子中,setdefault
方法会检查字典中是否存在指定的键,如果不存在,则会创建该键,并关联一个默认值(这里是空列表),然后返回该键对应的值。这样就可以直接在原地操作值,而不用担心键不存在的问题。
另一种方式是使用 if
语句来判断键是否存在,如果不存在则手动创建键并关联默认值:
my_dict = {}
# 使用 if 语句判断键是否存在,如果不存在则创建并关联默认值
if 'key1' not in my_dict:
my_dict['key1'] = []
my_dict['key1'].append(1)
if 'key2' not in my_dict:
my_dict['key2'] = []
my_dict['key2'].append(2)
print(my_dict)
# 输出: {'key1': [1], 'key2': [2]}
虽然这两种方法可以实现相同的效果,但相对于 defaultdict
,它们显得更为繁琐,容易出现代码重复。因此,defaultdict
提供了更简洁的方式来处理这种情况。