当前位置: 首页 > 网络应用技术

Python实施周期的最快方法(用于空间和其他速度比较)

时间:2023-03-05 22:35:14 网络应用技术

  众所周知,Python不是具有高执行效率的语言。此外,周期是非常耗时的操作。如果任何简单的单步操作都采用一个单元,则该操作将重复执行数万次,最后一次将增加数万次。

  Python中通常使用的两个关键字实际上是其操作效率的差距。例如,下面的测试代码:

  这是一个简单的搜索和操作,可以计算出1和N之间的所有自然数的总和。可以看出,周期比比1.5秒快。

  差距主要是由于两者的不同机制。

  在每个周期中,实际上执行了两个步骤,而不是更多:边界检查和变量中的自我提示。也就所有明确的纯Python代码。

  该周期不需要执行边界检查和自我提示操作,也不需要增加显式Python代码(纯Python代码效率少于底部C代码)。循环数足够了,就足够了效率显着差距。

  您可以添加两个功能,在周期中添加不必要的界限和自我提示计算:

  可以看出,增加的边界检查和自我启动操作确实极大地影响了周期的执行效率。

  如前所述,Python底层的解释器和构建功能是用C语言实现的。C语言的执行效率比Python大得多。

  为了在上面的差异差异之和的总和借助python构建的功能的帮助下,它可以获得大于或循环的执行效率。

  可以看出,使用构建-in函数替换循环后,代码的执行效率增加了一倍。

  构建功能的累积操作实际上是一个周期,但是它是通过C语言实现的,并且周期的处理和操作由纯Python Code.c> Python实施。

  再次扩展思维。当我还是个孩子时,我听到了1至100童年的高斯和谐的故事。1…100的总和等于(1 + 100) * 50。此计算方法也可以应用于上面的搜索和操作。

  最后,数学总和的执行时间约为一百万次。这里的想法是,由于周期效率很低,因此必须执行数亿次代码。

  不要直接循环。通过数学公式,它将数亿个周期操作变成了操作的一步。效率自然是空前加强的。

  最后的结论(有点谜):

  实现周期的最快方法----不需要循环

  对于Python,最大程度地使用了构建功能,以最大程度地减少循环中的纯Python代码。

  当然,在某些情况下,构建的功能不是最快的。

猜你喜欢