Was ist der sauberste Weg, um eine Liste der numerischen Werte in einer Zeichenkette zu erhalten?Der sauberste Weg, um eine Liste der numerischen Werte in einer Zeichenkette zu erhalten
Zum Beispiel:
string = 'version_4.11.2-2-1.4'
array = [4, 11, 2, 2, 1, 4]
Wie Sie vielleicht verstehen, ich brauche Versionen zu vergleichen.
Mit "sauberste", meine ich so einfach/kurz/lesbar wie möglich.
Auch wenn möglich, dann bevorzuge ich integrierte Funktionen über regexp (import re
).
Das ist, was ich so weit gekommen, aber ich glaube, dass es eher ungeschickt ist:
-
:
array = [int(n) for n in ''.join(c if c.isdigit() else ' ' for c in string).split()]
Merkwürdigerweise habe ich eine Antwort zu finden auf SO nicht in der Lage gewesen,
Dank
Danke. Ich benutze Python 2. Also nehme ich es (auch von allen anderen Antworten), dass es nicht viel mehr gibt, was mit eingebauten Funktionen erreicht werden kann, und dass "re" die sauberste Lösung ist. Ist das korrekt? –
@barakmanos 're' ist Teil der Standardbibliothek, behandeln Sie es wie ein eingebautes. Es ist die sauberste Lösung für Ihr spezifisches Problem, ja. –