Was ist der schnellste Weg, die Ziffern einer Zahl in Python zu summieren?

Patricia Arquette
Freigeben: 2024-11-24 02:53:10
Original
749 Leute haben es durchsucht

What's the Fastest Way to Sum the Digits of a Number in Python?

Summierung von Zahlenziffern optimieren

Das Ermitteln der Summe einzelner Ziffern innerhalb einer Zahl ist eine häufige Programmieraufgabe. Es gibt mehrere Ansätze zur Lösung dieses Problems mit jeweils unterschiedlichen Leistungsmerkmalen.

Das bereitgestellte Python-Snippet mit sum(int(digit) for digit in str(number)) wandelt die Zahl in eine Zeichenfolge um und iteriert über ihre einzelnen Ziffern. Eine alternative Lösung mit sum(map(int, str(number))) erzielt das gleiche Ergebnis, indem jede Ziffer einer Ganzzahl zugeordnet und dann summiert wird.

Während diese Ansätze unkompliziert sind, kann eine effizientere Implementierung möglich sein erreicht, indem vollständig mit ganzen Zahlen operiert wird. Das folgende Codefragment verwendet die while-Schleife, um jede Ziffer zu durchlaufen:

def sum_digits(n):
    s = 0
    while n:
        s += n % 10
        n //= 10
    return s
Nach dem Login kopieren

Eine andere Variante mit divmod teilt die Zahl in ihren Quotienten und den Rest auf:

def sum_digits2(n):
    s = 0
    while n:
        n, remainder = divmod(n, 10)
        s += remainder
    return s
Nach dem Login kopieren

Leistungsmessungen zeigen, dass diese Ganzzahlbasierte Lösungen sind deutlich schneller als die stringbasierten Alternativen:

Function Time Per Loop
sum_digits3 479 ns
sum_digits 574 ns
sum_digits2 716 ns
sum(map(int, str(n))) 1.42 us
sum([int(digit) for digit in str(n)]) 1.52 us
sum(int(digit) for digit in str(n)) 2.04 us

Daher ist es für eine optimale Geschwindigkeit so Es wird empfohlen, einen der in dieser Diskussion vorgestellten ganzzahlbasierten Ansätze zu verwenden.

Das obige ist der detaillierte Inhalt vonWas ist der schnellste Weg, die Ziffern einer Zahl in Python zu summieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage