【发布时间】:2017-11-23 08:51:34
【问题描述】:
是否有一个 python 内置(或只是优化)函数可以在两个单独的变量中同时获取地板除法和余数?
示例:
a, b = 10 divided by 4
期望的结果:
a = 2
b = 2
我需要这是一个优化的解决方案。
性能结果:
第一段代码:
for i in range(10000000):
a, b = divmod(i, 5)
took 3.99 seconds to run
第二段代码:
for i in range(10000000):
a = i // 5
b = i % 5
took 2.56 seconds to run
备注:
阅读@casevh 答案以获得更详细的解释。
tldr:如果数字很大,divmod() 效果会更好。
【问题讨论】:
-
我猜你不在此代码之后,但我想会检查:a=10 b=2 div=a//b mod=a%b
-
@KatiaPunter 我一直在寻找某种内置功能,因为有时这些功能要快得多。但我也会对该解决方案进行计时,看看哪个表现更好。谢谢
-
@joaoavf 你从哪里得到这些数字的?
took 2.56 seconds to run和took 3.99 seconds to run -
@KatiaPunter,您的解决方案实际上更快
-
@Elis 刚刚在我的电脑上运行了它,如果你能复制我将不胜感激
标签: python optimization