% python --version
Python 2.7.11 :: Anaconda 2.5.0 (64-bit)
for i, (a, b) in enumerate(zip(list_a, list_b)):
# Do something
Verwenden Sie die String-Methode isdigit ()
. Gibt true zurück, wenn die Zeichenfolge nur Zahlen enthält, andernfalls false.
a = '100'
b = 'hoge100'
a.isdigit() # => True
b.isdigit() # => False
Sie können auch verschiedene Dinge mit is * ()
überprüfen.
Referenz:
Was Sie tun möchten:
a = ['2', '1', '3', '33', '22', '11']
sorted(a) # => ['1', '11', '2', '22', '3', '33']
# I need `['1', '2', '3', '11', '22', '33']
Übergeben Sie "int ()" an das Schlüsselwortargument "key" von "sorted ()", konvertieren Sie jedes Element (Zeichenfolge) in einen numerischen Wert und sortieren Sie es.
sorted(a, key=int) # => ['1', '2', '3', '11', '22', '33']
Ein Fehler tritt auf, wenn die zu sortierende Liste eine Zeichenfolge enthält, die nicht in einen numerischen Wert konvertiert werden kann. Gehen Sie in diesem Fall wie folgt vor.
a = ['2', '1', '3', '33', '22', '11', 'hoge', 'fuga']
sorted(a, key=lambda x: int(x) if x.isdigit() else x) # => ['1', '2', '3', '11', '22', '33', 'fuga', 'hoge']
Referenz: 2. Integrierte Funktionen - Python 2.7.13-Dokumentation