You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何优化Python中的多if分支冗余代码?附代码示例

优化后的Python代码

核心优化思路

解决原代码中重复正则匹配、冗余变量与判断的问题,同时保留原逻辑的优先级(后续匹配结果覆盖前面的)。

优化代码(假设date_str1/2/3初始为空)

import re

# 按原逻辑的优先级排序(p3匹配结果会覆盖p2、p1)
patterns = [p3, p2, p1]

find_list = []
date_str = ""

for pattern in patterns:
    matches = re.findall(pattern, path)
    if matches:
        find_list = matches
        date_str = f"{matches[0]} "
        break  # 找到最高优先级的匹配后直接终止循环

若date_str1/2/3有初始值的适配版本

如果原代码中date_str1、date_str2、date_str3本身带有初始内容,可调整为:

import re

# 将正则与对应初始date_str配对,按优先级排序
pattern_date_pairs = [
    (p3, date_str3),
    (p2, date_str2),
    (p1, date_str1)
]

find_list = []
date_str = ""

for pattern, initial_date in pattern_date_pairs:
    matches = re.findall(pattern, path)
    if matches:
        find_list = matches
        date_str = f"{initial_date}{matches[0]} "
        break

优化点说明

  • 减少重复计算:每个正则仅执行一次re.findall,避免原代码中多次重复匹配的性能浪费。
  • 简化逻辑结构:用循环替代重复的if判断,消除冗余变量(如find_list1/2/3、date_str1/2/3),代码更简洁易维护。
  • 明确优先级逻辑:通过排序和提前终止循环,清晰体现原代码中“后续匹配覆盖前面结果”的优先级规则。

内容的提问来源于stack exchange,提问作者fleamon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 00:53:33