Python实用技巧与最佳实践

以下是一些能让你的 Python 代码更高效优雅的实用技巧:
字符串与文本处理
使用 f-strings 格式化 - .format() % 格式化更清晰:
  1. name, age = "Alice", 30
  2. print(f"{name} is {age} years old") # 清晰易读
python
三引号多行字符串 - 适合 SQL 查询或文档:
  1. query = """
  2. SELECT name, email
  3. FROM users
  4. WHERE active = 1
  5. """
python
列表与字典操作
列表推导式 - 比传统循环更简洁:
  1. squares = [x**2 for x in range(10) if x % 2 == 0] # 仅偶数的平方
python
字典推导式
  1. word_lengths = {word: len(word) for word in ["python", "java", "go"]}
python
使用 get() 安全访问字典
  1. user_age = user_data.get("age", 0) # 若 "age" 键不存在则返回 0
python
控制流与逻辑
链式比较
  1. if 18 <= age <= 65: # 比 age >= 18 and age <= 65 更清晰
  2. print("工作年龄")
python
使用 any() all() 做布尔运算
  1. if any(x > 10 for x in numbers): # 只要有任一数 > 10 即为 True
  2. if all(score >= 60 for score in scores): # 所有分数都 >= 60 才为 True
python
函数与类技巧
避免可变默认参数陷阱
  1. # 错误方式
  2. def add_item(item, target_list=[]): # 危险!

  3. # 正确方式
  4. def add_item(item, target_list=None):
  5. if target_list is None:
  6. target_list = []
python
*使用 args kwargs 实现灵活函数
  1. def flexible_func(*args, **kwargs):
  2. print(f"Args: {args}, Kwargs: {kwargs}")
python
内置函数与模块
enumerate() 替代手动计数
  1. for i, item in enumerate(items):
  2. print(f"{i}: {item}")
python
zip() 并行迭代
  1. names = ["Alice", "Bob", "Charlie"]
  2. ages = [25, 30, 35]
  3. for name, age in zip(names, ages):
  4. print(f"{name}: {age}")
python
collections.Counter 计数
  1. from collections import Counter
  2. letter_counts = Counter("hello world")
python
pathlib 处理文件路径
  1. from pathlib import Path
  2. file_path = Path("data") / "file.txt" # 跨平台路径处理
python
性能与内存
用生成器处理大数据集
  1. def fibonacci():
  2. a, b = 0, 1
  3. while True:
  4. yield a
  5. a, b = b, a + b
python
列表切片技巧
  1. # 反转列表
  2. reversed_list = original_list[::-1]

  3. # 获取每第 n 个元素
  4. every_third = my_list[::3]
python
错误处理
EAFP (请求原谅比请求许可更容易)
  1. # Python 风格
  2. try:
  3. value = my_dict["key"]
  4. except KeyError:
  5. value = "default"

  6. # 而不是
  7. if "key" in my_dict:
  8. value = my_dict["key"]
  9. else:
  10. value = "default"
python
上下文管理器
始终使用上下文管理器处理文件操作
  1. with open("file.txt") as f:
  2. content = f.read()
  3. # 文件自动关闭,即使发生异常也是如此
python
调试与开发
pprint 打印复杂数据结构
  1. from pprint import pprint
  2. pprint(complex_nested_dict) # 输出更易读
python
breakpoint() 调试(Python 3.7+):
  1. # 替代 import pdb; pdb.set_trace()
  2. breakpoint() # 进入调试器
python
这些技巧能显著提升你的 Python 代码的可读性、性能和可维护性。关键是要根据具体场景选择合适的技巧应用。
实践建议
字符串格式化优先用 f-strings(Python 3.6+)
列表/字典推导式要适度,过于复杂时用常规 for 循环
字典访问用 .get() 防止 KeyError
文件操作必须用 with 语句
大数据集处理优先考虑生成器
错误处理倾向于 EAFP 而非 LBYL
复杂调试场景用 pprint breakpoint()
记住:代码是写给人看的,只是顺便能被机器执行。选择技巧时,可读性和可维护性应该是首要考虑因素。