我在用各種方法搞亂各種方式來總結一個數字的所有數字,並且在那裏有兩種方式似乎符合我的需要。在Python 2與Python 3中求和數字的代碼速度
sum(map(int,str(num))) #First Method
def sum_digits(n): #Second Method
total = 0
while n != 0:
total += n%10
n /= 10
return total
它沒有在Python讓我感到吃驚2的方法之一是速度較慢,但有些東西讓我感到驚訝,當我把同樣的代碼到Python 3中,實際上減緩了第二種方法。我知道地圖在python 3中被改變了,這似乎解釋了第一種方法的加速,但我不明白第二種方法的減速。
我的問題是這樣的:爲什麼第二種方法會減慢? (第二種方法在Python 3和Python 2中的運行速度大約慢了兩倍)。我的示例數據是所有數字,這些數據會被認爲是很長的,但我不確定是否會影響它。
基本上,你的第一行用C完成所有的工作。 – Marcin