Seite 1 von 1

String Liste in Ineger Liste umwandeln

Verfasst: Dienstag 3. Februar 2015, 19:30
von nieselfriem
Hallochen.

Ich habe eine String Liste. Sie enthält mit Komma voneinander getrennte Zahlen. Diese lese ich wie folgt ein.

Code: Alles auswählen

def read_list():
    with open("text.txt","r") as f:
        liste = map(int,f.read().split(","))
   
    print(liste[2])
Nun wollte ich aus dem Dateistream eine Integerliste erzeugen. Ich wollte es vermeiden durch eine Schleife jeden einzelnen Wert umzuwandeln. Gibts es da noch andere Möglichkeiten?

Es kommt die folgende Fehlermeldung;

Code: Alles auswählen

  File "check_quicksort.py", line 5, in read_list
    print(liste[2])
TypeError: 'map' object is not subscriptable
VG niesel

Re: String Liste in Ineger Liste umwandeln

Verfasst: Dienstag 3. Februar 2015, 19:46
von BlackJack
@nieselfriem: Wenn Du eine Liste haben möchtest, dann würde ich das in Python 3 als „list comprehension” schreiben. `map()` liefert ein iterierbares Objekt und keine Liste.

Re: String Liste in Ineger Liste umwandeln

Verfasst: Dienstag 3. Februar 2015, 21:44
von /me
nieselfriem hat geschrieben:

Code: Alles auswählen

TypeError: 'map' object is not subscriptable
In Python 2 hat map noch eine Liste erzeugt, in Python 3 nicht mehr.

Code: Alles auswählen

>>> map(int, '12')
<map object at 0x044EFEF0>
>>> list(map(int, '12'))
[1, 2]
>>> [int(value) for value in '12']
[1, 2]