我正在用各种方法来用 Python 对数字的所有数字求和,并且有两种方法似乎适合我的需要。
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 时,让我有些惊讶的是,第二种方法实际上变慢了。我知道map在python 3中被改变了,这似乎解释了第一种方法的加速,我不明白的是第二种方法的减速。
我的问题是:为什么第二种方法变慢了?(第二种方法在 Python 3 中的运行速度比 Python 2 慢两倍)。我的样本数据都是被认为很长的数字,但我不确定这是否会影响它。