TypeError behoben: 'map'-Objekt ist in Python nicht abonnierbar

Fariba Laiq 21 Juni 2023
  1. Ursache des Fehlers TypeError: 'map' object is not subscriptable in Python
  2. Beheben Sie den Fehler TypeError: 'map' object is not subscriptable in Python
TypeError behoben: 'map'-Objekt ist in Python nicht abonnierbar

Jede Programmiersprache trifft auf viele Fehler. Einige treten zur Kompilierzeit auf, andere zur Laufzeit.

Dieser Artikel behandelt TypeError: 'map' object is not subscriptable, eine Unterklasse von TypeError. Wir stoßen auf einen TypeError, wenn wir versuchen, eine Operation auszuführen, die mit dem Objekttyp nicht kompatibel ist.

Ursache des Fehlers TypeError: 'map' object is not subscriptable in Python

Python 2-Kartenoperationen in Python 3

In Python 2 gibt die Methode map() eine Liste zurück. Wir können auf die Elemente der Liste zugreifen, indem wir ihren Index über den Indexoperator [] verwenden.

In Python 3 gibt die Methode map() ein Objekt zurück, das ein Iterator ist und nicht indiziert werden kann. Wenn wir versuchen, mit dem Indexoperator [] auf das Element zuzugreifen, wird der TypeError: 'map' object is not subscriptable ausgelöst.

Beispielcode:

# Python 3.x
my_list = ["1", "2", "3", "4"]
my_list = map(int, my_list)
print(type(my_list))
my_list[0]

Ausgang:

#Python 3.x
<class 'map'>
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-1-07511913e32f> in <module>()
      2 my_list = map(int, my_list)
      3 print(type(my_list))
----> 4 my_list[0]

TypeError: 'map' object is not subscriptable

Beheben Sie den Fehler TypeError: 'map' object is not subscriptable in Python

Konvertieren Sie das Map-Objekt in Python 3 in List

Wenn wir das Kartenobjekt mit der Methode list() in eine Liste umwandeln, können wir die Methoden tiefgestellter Operator/Liste verwenden.

Beispielcode:

# Python 3.x
my_list = ["1", "2", "3", "4"]
my_list = list(map(int, my_list))
print(my_list[0])

Ausgang:

#Python 3.x
1

Verwenden Sie die for-Schleife mit Iterator in Python 3

Wir können auf die Elemente im Iterator mit einer for-Schleife zugreifen. Es ruft die Methode __next__() auf der Rückseite auf und gibt alle Werte aus.

Beispielcode:

# Python 3.x
my_list = ["1", "2", "3", "4"]
my_list = list(map(int, my_list))
for i in my_list:
    print(i)

Ausgang:

#Python 3.x
1
2
3
4
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Verwandter Artikel - Python Error