Python dict.setdefault() 方法用于键存在返回原值,不存在则先设置默认值再返回。
语法
d.setdefault(key, default=None)参数
key:要操作的键。可选 default:键不存在时设置的值,默认 None。
返回值
键存在返回原值;不存在则先插入默认值再返回该默认值。
示例
d = {"a": 1}
print(d.setdefault("a", 99)) # 1,存在返回原值
print(d.setdefault("b", 99)) # 99,不存在设置后返回
print(d) # {'a': 1, 'b': 99}
# 计数:比 get 更简洁
counts = {}
for w in ["apple", "banana", "apple"]:
counts.setdefault(w, 0)
counts[w] += 1
print(counts) # {'apple': 2, 'banana': 1}
# 分组:值设为列表
groups = {}
for name in ["Tom", "Ann", "Bob", "Tom"]:
groups.setdefault(name, []).append(len(name))
print(groups) # {'Tom': [3, 3], 'Ann': [3], 'Bob': [3]}输出:
1
99
{'a': 1, 'b': 99}
{'apple': 2, 'banana': 1}
{'Tom': [3, 3], 'Ann': [3], 'Bob': [3]}注意事项
setdefault 在分组(值存列表/字典)时特别好用,避免先判断键是否存在。