TypeError を修正: 'map' オブジェクトは Python で添字可能ではありません

Fariba Laiq 2023年6月21日
  1. Python での TypeError: 'map' object is not subscriptable エラーの原因
  2. Python の TypeError: 'map' object is not subscriptable エラーを修正する
TypeError を修正: 'map' オブジェクトは Python で添字可能ではありません

どのプログラミング言語でも、多くのエラーが発生します。 コンパイル時に発生するものもあれば、実行時に発生するものもあります。

この記事では、TypeError: 'map' object is not subscriptableTypeError のサブクラスについて説明します。 オブジェクトのタイプと互換性のない操作を実行しようとすると、TypeError が発生します。

Python での TypeError: 'map' object is not subscriptable エラーの原因

Python 3 での Python 2 マップ操作

Python 2 では、map() メソッドはリストを返します。 添字演算子 [] を介してインデックスを使用して、リストの要素にアクセスできます。

Python 3 では、map() メソッドはイテレータであり、添え字を付けられないオブジェクトを返します。 添え字演算子 [] を使用してアイテムにアクセスしようとすると、TypeError: 'map' object is not subscriptable が発生します。

コード例:

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

出力:

#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

Python の TypeError: 'map' object is not subscriptable エラーを修正する

Python 3 でマップ オブジェクトをリストに変換する

list() メソッドを使用してマップ オブジェクトをリストに変換する場合、添字演算子/リスト メソッドを使用できます。

コード例:

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

出力:

#Python 3.x
1

Python 3 のイテレータで for ループを使用する

for ループを使用してイテレータ内の項目にアクセスできます。 後ろで __next__() メソッドを呼び出し、すべての値を出力します。

コード例:

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

出力:

#Python 3.x
1
2
3
4
著者: Fariba Laiq
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

関連記事 - Python Error