2016-10-11 1 views
-2

habe ich eine Liste:Ändern bestimmte Elemente in einer Liste in eine int

aList = ['asdf123', '100', '45', '34hello'] 

wie kann ich es ändern, so die ‚100‘ und ‚45‘ statt str int wird?

aList = ['asdf123', 100, 45, '34hello'] 
+0

Willkommen bei Stack Overflow! Bitte zeigen Sie, was Sie bisher haben. Weitere Informationen finden Sie unter [So stellen Sie eine gute Frage] (http://stackoverflow.com/help/how-to-ask). –

+0

@ cricket_007 Kommentar über dup entfernt –

Antwort

2

Sie könnten eine Hilfsfunktion verwenden,

def to_int(s): 
    try: 
     return int(s) 
    except: 
     return s 

aList = [to_int(n) for n in aList] 
+1

Es ist sinnlos, 'int (s)' zum ersten Mal aufzurufen, weil es in 'return'-Anweisung eine Ausnahme auslösen kann. –

+0

Im Moment ist dies die einzige Antwort, die einen aussagekräftigen und PEP-8-konformen Namen für die Funktion verwendet. Gut gemacht. – Matthias

+0

aw, shucks, danke :) – broinjc

0

eine Methode definieren, die eine ganze Zahl konvertieren oder den ursprünglichen Wert zurück;

def tryInt(value): 
    try: 
     return int(value) 
    except: 
     return value 

verwenden Dann map und lambda;

map(lambda x: tryInt(x), aList) 
+0

Oder Liste Verständnis, '[tryInt (n) für n in einer Liste]' – broinjc

0

Die folgenden sollten Sie dort bekommen.

def convert(x): 
    try: 
     return int(x) 
    except ValueError: 
     return x 

aList = map(convert, aList) 
Verwandte Themen