python - 如何找到最优化的 if 语句序列?

标签 python if-statement optimization

我有很多 if 语句,我想为它们找到最优化的序列。

每种情况都有不同的时间复杂度,并且触发的次数也不同。例如,case1 可能是 θ(n^2),而 case3 可能是 θ(log(n)) >,但第二个函数会更早停止该函数,因此最好将其放在第一个。

我如何找到最有效的方法来排序 if 语句?

def function1():   
    if case1:
        return False
    if case2:
        return False
    if case3:
        return False
    # caseN...

    return True

最佳答案

要做出明智的设计决策,您需要定义您的目标:

  1. 如果函数应尽可能快地返回,那么最快的情况可能应该首先执行。
  2. 但是,如果您希望函数对所有输入数据平均快速返回,那么您可能需要知道哪种情况更适合您的输入数据;如果您期望最多的输入数据落入其中,那么该数据可能应该排在第一位。这样,函数的平均运行时间就可以减少。

但是要做出最佳决定,您需要考虑很多因素:

  • 数据的类型(集、列表、字符串……)
  • 输入的大小以及调用函数的次数
  • 每种情况下完成的操作(是搜索、一些繁重的计算、简单的算术运算……)
  • 研究在您的案例中包含尽可能多的短路条件以使其尽早失效的可能性

如果您需要更多帮助,那么您应该为您的问题提供更具体的信息。

关于python - 如何找到最优化的 if 语句序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54686219/

相关文章:

python - 无法在 selenium python 中执行单击操作

java - if 语句中的 NullPointerException

linux - 如何最有效地处理大量文件描述符?

php - 优化 PHP 页面 : MySQL bottleneck

python - 如何使用 numpy 提高 python 代码性能

python - 将数字转换为 Pandas 数据框中的2位 float

Python 正则表达式 findall 到输出文件

python - 使用networkX输出树结构

c# - DataGridView——突出显示具有迟到项目的行

php - 我的 if 语句执行检查但不给出输出