Python 私藏:看似简单却超实用的小技巧

41 阅读2分钟

作为一名天天和 Python 打交道的 “搬砖人”,你是不是总觉得自己写的代码有点 “笨笨的”?明明是基础知识点,却总在实际写代码时想不起来用。今天就分享 3 个 “进阶版基础” 小技巧,简单好懂,用了直呼真香!

1. 字典的 “安全访问”:告别 KeyError 暴击

新手写代码最头疼的就是取字典值时遇到 KeyError,明明只是想优雅地拿个值,结果程序直接崩了。别再傻乎乎地用 if key in dict 了,试试 get() 方法,还能直接设置默认值!

# 反面教材:容易翻车
user_info = {"name": "掘金小猿", "age": 25}
# print(user_info["gender"])  # 直接报错 KeyError: 'gender'

# 正确姿势:安全访问 + 默认值
gender = user_info.get("gender", "未知")
print(gender)  # 输出:未知

# 进阶:甚至可以嵌套用
user_detail = {"info": {"city": "北京"}}
hobby = user_detail.get("info", {}).get("hobby", "摸鱼")
print(hobby)  # 输出:摸鱼

2. 列表推导式:一行搞定循环 + 筛选,代码少一半

还在写好几行 for 循环 + if 判断来处理列表?列表推导式直接把代码 “瘦身”,而且可读性一点不差,新手也能秒懂!

# 需求:从列表中筛选出偶数并乘以2
nums = [1, 2, 3, 4, 5, 6]

# 传统写法:又长又啰嗦
new_nums = []
for num in nums:
    if num % 2 == 0:
        new_nums.append(num * 2)
print(new_nums)  # 输出:[4, 8, 12]

# 列表推导式:一行搞定
new_nums_pro = [num * 2 for num in nums if num % 2 == 0]
print(new_nums_pro)  # 输出:[4, 8, 12]

3. 解包:让变量赋值告别 “按顺序数下标”

不管是列表、元组还是字典,解包都能让你优雅地给变量赋值,再也不用一个个写 a = list[0] 了!

# 基础解包
point = (10, 20)
x, y = point
print(x, y)  # 输出:10 20

# 进阶:忽略无关值
user = ("张三", 18, "北京", "Python")
name, _, city, _ = user
print(name, city)  # 输出:张三 北京

# 字典解包(取键)
info = {"a": 1, "b": 2}
k1, k2 = info
print(k1, k2)  # 输出:a b

# 字典解包(取键值对)
for k, v in info.items():
    print(f"{k}: {v}")  # 输出:a:1  b:2

总结

  1. 字典 get() 方法是避免 KeyError 的 “保命符”,还能灵活设置默认值;
  2. 列表推导式用一行代码替代繁琐的循环 + 筛选,简洁又高效;
  3. 解包能让变量赋值更优雅,尤其适合处理多元素的序列类型。