Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich Ganzzahlen in jeder Basis in Python effizient in Strings konvertieren?

Wie kann ich Ganzzahlen in jeder Basis in Python effizient in Strings konvertieren?

Linda Hamilton
Freigeben: 2024-12-05 06:10:18
Original
380 Leute haben es durchsucht

How Can I Efficiently Convert Integers to Strings in Any Base in Python?

Ganzzahlen in Strings mit beliebiger Basis konvertieren

In Python erstellt die Funktion int() mühelos eine Ganzzahl aus einem String mit einer angegebenen Basis. Allerdings kann die umgekehrte Operation der Konvertierung einer Ganzzahl in eine Zeichenfolge schwierig sein. Unser Ziel ist es, eine allgemeine Lösung zu entwickeln, int2base(num, base), die die Bedingung erfüllt:

int(int2base(x, b), b) == x
Nach dem Login kopieren

Hier ist eine überraschend einfache Lösung, die beliebige Basen verarbeitet:

def numberToBase(n, b):
    if n == 0:
        return [0]
    digits = []
    while n:
        digits.append(int(n % b))
        n //= b
    return digits[::-1]
Nach dem Login kopieren

Diese Funktion Konvertiert eine Zahl n zur Basis b und gibt eine Liste von Ziffern zurück. Um beispielsweise eine große Zahl in die Basis 577 umzuwandeln:

numberToBase(67854 ** 15 - 102, 577)
Nach dem Login kopieren

Sie erhalten das korrekte Ergebnis als Liste:

[4, 473, 131, 96, 431, 285, 524, 486, 28, 23, 16, 82, 292, 538, 149, 25, 41, 483, 100, 517, 131, 28, 0, 435, 197, 264, 455]
Nach dem Login kopieren

Warum diese Lösung funktioniert

Die bereitgestellte Lösung zeigt, dass manchmal benutzerdefinierte Funktionen erforderlich sind, wenn integrierte Funktionen nicht die gewünschte Funktionalität bieten. Hier überwindet int2base() Einschränkungen durch:

  • Verarbeitung beliebiger Basen von 2 bis unendlich.
  • Zurückgeben einer Liste von Ziffern anstelle einer Zeichenfolge, da keine integrierte Funktion dafür existiert direkte Basiskonvertierung in eine beliebige Basis.

Das obige ist der detaillierte Inhalt vonWie kann ich Ganzzahlen in jeder Basis in Python effizient in Strings konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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