私はPythonで数字のすべての桁を合計するさまざまな方法をいじっていましたが、私のニーズに合った2つの方法がありました。
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 では方法 1 の方が遅かったことは驚きではありませんでしたが、同じコードを Python 3 に取り込んだときにやや驚いたのは、2 番目の方法が実際に遅くなったことです。Python 3 でマップが変更されたことは理解していますが、これは最初の方法の高速化を説明しているようです。理解できないのは、2 番目の方法の低速化です。
私の質問は次のとおりです。なぜ 2 番目の方法が遅くなったのですか? (2 番目の方法は、Python 3 では Python 2 よりも約 2 倍遅く実行されました)。私のサンプルデータはすべて長いと見なされる数値でしたが、それが影響するかどうかはわかりません。