Если я хочу найти сумму цифр числа, т.е.:
932
14
, который является (9 + 3 + 2)
Каков самый быстрый способ сделать это?
Я инстинктивно сделал:
sum(int(digit) for digit in str(number))
и я нашел это онлайн:
sum(map(int, str(number)))
Который является лучшим для использования для скорости и является там какими-либо другими методами, которые еще быстрее?
Попробуйте это
print(sum(list(map(int,input("Enter your number ")))))
reduce(op.add,map(int,list(str(number))))
Тест:
from datetime import datetime
number=49263985629356279356927356923569976549123548126856926293658923658923658923658972365297865987236523786598236592386592386589236592365293865923876592385623987659238756239875692387659238756239875692856239856238563286598237592875498259826592356923659283756982375692835692385653418923564912354687123548712354827354827354823548723548235482735482354827354823548235482354823548235482735482735482735482354823548235489235648293548235492185348235481235482354823548235482354823548235482354823548234
startTime = datetime.now()
for _ in range(0,100000) :
out=reduce(op.add,map(int,list(str(number))))
now=datetime.now()
runningTime=(now - startTime)
print ("Running time:%s" % runningTime)
print(out)
Рабочий time:0:00:13.122560 2462
Найденный этим на одной из проблемы, решая веб-сайты проблемы. Шахта Not, но это работает.
num = 0 #replace 0 with whatever number you want to sum up
print(sum([int(k) for k in str(num)]))