Pythonでプログラミングをしていると、'map' object is not subscriptableというエラーに遭遇することがあります。このエラーは、Python 3でmap()関数が返すオブジェクトがリストではなく、イテラブルなmapオブジェクトであるために発生します。

Python 2とPython 3では、map()関数の動作が異なります。Python 2では、map()関数は結果をリストとして返します。しかし、Python 3では、map()関数はmapオブジェクト(イテラブル)を返します。

したがって、Python 3でmap()関数の結果をリストとして扱いたい場合は、list()関数を使用してmap()関数の結果をリストに変換する必要があります。例えば、次のように書くことができます:

payIntList = list(map(int, payList))

また、Pythonではインデックスを使わずにコードを書くことが推奨されています。リスト内包表記を使って、上記のコードを次のように書き換えることもできます:

payIntList = [pi + 1000 for pi in payList]
for pi in payIntList:
    print(pi)

このように、Python 3で'map' object is not subscriptableというエラーを解決するためには、map()関数の結果をリストに変換するか、インデックスを使わずにコードを書くことが有効です。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です