本文目录导读:

- 列表推导式替代循环
- 字典推导式
- 条件表达式替代if-else
- 使用any()/all()简化条件判断
- 使用*解包
- 使用f-string替代字符串拼接
- 使用zip()并行迭代
- 使用enumerate()获取索引
- 链式比较
- 使用collections模块
- 实战案例:处理学生成绩
- 精简代码原则
我来分享几个Python代码精简的实用案例:
列表推导式替代循环
# ❌ 冗余写法
result = []
for i in range(10):
if i % 2 == 0:
result.append(i * 2)
# ✅ 精简写法
result = [i * 2 for i in range(10) if i % 2 == 0]
字典推导式
# ❌ 冗余写法
squares = {}
for x in range(5):
squares[x] = x * x
# ✅ 精简写法
squares = {x: x * x for x in range(5)}
条件表达式替代if-else
# ❌ 冗余写法
if age >= 18:
status = "成年"
else:
status = "未成年"
# ✅ 精简写法
status = "成年" if age >= 18 else "未成年"
使用any()/all()简化条件判断
# ❌ 冗余写法
has_even = False
for num in numbers:
if num % 2 == 0:
has_even = True
break
# ✅ 精简写法
has_even = any(num % 2 == 0 for num in numbers)
使用*解包
# ❌ 冗余写法 first = items[0] rest = items[1:] # ✅ 精简写法 first, *rest = items
使用f-string替代字符串拼接
# ❌ 冗余写法
name = "张三"
message = "你好," + name + "!quot; + str(age) + "岁"
# ✅ 精简写法
message = f"你好,{name}!age}岁"
使用zip()并行迭代
# ❌ 冗余写法
for i in range(len(names)):
print(f"{names[i]} - {ages[i]}")
# ✅ 精简写法
for name, age in zip(names, ages):
print(f"{name} - {age}")
使用enumerate()获取索引
# ❌ 冗余写法
for i in range(len(items)):
print(f"第{i+1}个: {items[i]}")
# ✅ 精简写法
for i, item in enumerate(items, start=1):
print(f"第{i}个: {item}")
链式比较
# ❌ 冗余写法
if x >= 0 and x <= 100:
print("在范围内")
# ✅ 精简写法
if 0 <= x <= 100:
print("在范围内")
使用collections模块
from collections import Counter
# ❌ 冗余写法
count = {}
for word in words:
if word in count:
count[word] += 1
else:
count[word] = 1
# ✅ 精简写法
count = Counter(words)
实战案例:处理学生成绩
# ❌ 冗余版本
def process_grades(students):
result = []
for student in students:
name = student['name']
grades = student['grades']
avg = sum(grades) / len(grades)
if avg >= 60:
status = "通过"
else:
status = "不及格"
result.append({
'name': name,
'average': avg,
'status': status
})
return result
# ✅ 精简版本
def process_grades(students):
return [
{
'name': s['name'],
'average': (avg := sum(s['grades']) / len(s['grades'])),
'status': '通过' if avg >= 60 else '不及格'
}
for s in students
]
精简代码原则
- 可读性优先 - 不要为了精简而牺牲可读性
- 一行一逻辑 - 避免一行写过多逻辑
- 合理使用特性 - 熟练掌握Python内置函数和特性
- 保持一致性 - 团队统一编码风格
好的代码不仅是精简的,更是清晰的!