Python 字典方法

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 在分组(值存列表/字典)时特别好用,避免先判断键是否存在。