字典是Python里最常用的数据结构之一,但很多新手只会用 dict[key] 取值、 for key in dict 遍历——其实字典藏了好几个"进阶偏基础"的用法,能让代码更简洁、更安全,还不容易翻车!
一、get() 方法:取值不怕KeyError(告别if判断)
新手取值时,为了避免键不存在报错,会写一堆if判断,其实用 get() 方法一行就能搞定,还能设置默认值。
反面例子(新手写法):
user = {"name": "小明", "age": 20}
# 想获取地址,没有就返回"未知"
if "address" in user:
address = user["address"]
else:
address = "未知"
print(address) # 输出:未知
进阶写法(get() 方法):
user = {"name": "小明", "age": 20}
address = user.get("address", "未知") # 键不存在时返回默认值
print(address) # 输出:未知
二、items() 方法:键值对一起遍历(不用再查字典)
遍历字典时,新手常先遍历键,再通过键查值,效率低还麻烦, items() 能直接获取键值对,一步到位。
反面例子(新手写法):
score = {"语文": 90, "数学": 95, "英语": 88}
for subject in score:
print(f"{subject}: {score[subject]}") # 还要通过键查值
进阶写法(items() 方法):
score = {"语文": 90, "数学": 95, "英语": 88}
for subject, grade in score.items(): # 直接拆包键值对
print(f"{subject}: {grade}")
# 输出:
# 语文: 90
# 数学: 95
# 英语: 88
三、字典推导式:一行生成新字典(告别for+update)
想根据已有数据生成新字典,新手会用循环+ update() ,字典推导式能一行搞定,逻辑更清晰。
反面例子(新手写法):
numbers = {"a": 1, "b": 2, "c": 3, "d": 4}
# 生成值为偶数的新字典
even_numbers = {}
for k, v in numbers.items():
if v % 2 == 0:
even_numbers[k] = v
print(even_numbers) # 输出:{"b":2, "d":4}
进阶写法(字典推导式):
numbers = {"a": 1, "b": 2, "c": 3, "d": 4}
even_numbers = {k: v for k, v in numbers.items() if v % 2 == 0}
print(even_numbers) # 输出:{"b":2, "d":4}
这三个技巧看似简单,但能解决实际开发中80%的字典操作问题,学会直接让代码质感升级!