Python代码精简案例如何精简冗余代码

wen python案例 28

本文目录导读:

Python代码精简案例如何精简冗余代码

  1. 列表推导式替代循环
  2. 字典推导式
  3. 条件表达式替代if-else
  4. 使用any()/all()简化条件判断
  5. 使用*解包
  6. 使用f-string替代字符串拼接
  7. 使用zip()并行迭代
  8. 使用enumerate()获取索引
  9. 链式比较
  10. 使用collections模块
  11. 实战案例:处理学生成绩
  12. 精简代码原则

我来分享几个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
    ]

精简代码原则

  1. 可读性优先 - 不要为了精简而牺牲可读性
  2. 一行一逻辑 - 避免一行写过多逻辑
  3. 合理使用特性 - 熟练掌握Python内置函数和特性
  4. 保持一致性 - 团队统一编码风格

好的代码不仅是精简的,更是清晰的!

抱歉,评论功能暂时关闭!