
推导式适用于逻辑单一、无副作用、结构清晰的场景;应避免多层嵌套、副作用函数、多步计算及超长单行,优先拆分为普通循环以保障可读性。
推导式是Python中简洁表达循环和映射的利器,但过度嵌套或混用多种操作会迅速降低可读性。核心原则是:单行推导式应能“一眼看懂意图”,否则就该拆成普通循环。
适用于逻辑单一、无副作用、输入输出结构清晰的场景:
[x.upper() for x in names if x]
{k: v*2 for k, v in data.items() if v > 0}
{len(s) for s in words if s.isalpha()}
一旦出现以下任一特征,优先选常规语句:
if-else三元表达式)print()、logging.info()、修改外部状态)在坚持使用推导式的前提下,可通过结构优化提升可维护性:
[parse_timestamp(s) for s in raw_times]
result = [
transform(x)
for x in items
if is_valid(x)
if not x.is_expired()
]
统一标准比个人偏好更重要:
# 提取所有已激活且非测试环境的API端点