本ページはプロモーション(PR)が含まれています
pythonのmap関数でTypeError: 'xxx' object is not iterable:問題と解決策
はるか
TypeError: ‘int’ object is not iterable って。なんだこれ。
ふゅか
それはよくあるエラーだね。見てみよう!
問題のコード
def my_function(a):
return a * 2
map(my_function, 5)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[1], line 3
1 def my_function(a):
2 return a*2
----> 3 map(my_function, 5)
TypeError: 'int' object is not iterable
はるか
このコードでエラーが出てる
ふゅか
うん、map関数の第2引数にint型の5を渡してるのが問題だね。
欲しい出力結果
5の2倍である10のリストが出力結果になるようにコードを修正する。
[10]
検証環境
Python 3.9.18
Windows11
Jupyter Lab 3.6.3
Windows11
Jupyter Lab 3.6.3
エラーの概要
TypeError: ‘int’ object is not iterable
map 関数の第2引数にはイテラブルなオブジェクト(リスト、タプル、セットなど)が必要ですが、このコードでは整数 5 が渡されています。整数はイテラブルではないため、エラーが発生しています。
はるか
エラーの原因は整数がイテラブルじゃないから。
エラーの修正
def my_function(a):
return a * 2
map(my_function, 5)
map 関数の第2引数として、整数の代わりにリストや他のイテラブルオブジェクトを渡す必要があります。例えば、リスト [5] を渡すように修正します。
修正後のコード
def my_function(a):
return a * 2
result = map(my_function, [5])
print(list(result))
コードの説明
def my_function(a):これはaを引数に取り、その値を2倍にする関数my_functionを定義しています。return a * 2関数の中で、引数aの値を2倍にして返しています。map(my_function, [5])map関数を使って、リスト[5]の各要素に対してmy_functionを適用しています。map関数は各要素に関数を適用した結果を含むイテレータを返します。print(list(result))map関数の結果であるイテレータをリストに変換してから、そのリストを表示しています。この場合、出力は[10]になります。
イテラブルなオブジェクトを map 関数に渡しましょう。
はるか
これで修正後のコードが完成。
ふゅか
お疲れ様!
関連した記事
- pythonの関数について
- pythonのmap関数の使い方
- pythonのmapでTypeError: xxxx() missing 1 required positional argument: ‘b’
- pythonのmapでAttributeError: ‘map’ object has no attribute ‘xxxx’
check
Pythonの基本から応用まで、幅広くカバーする記事を公開中です。学習のポイントや実践的なコード例を通じて、Pythonの魅力と実用性を深く理解することができます。ぜひ、こちらの記事で気になる記事を見つけてください!
関連記事
pythonのmapでAttributeError: 'map' object has no attribute 'xxxx'
配列
エラー
関数
pythonのmapでTypeError: xxxx() missing 1 required positional argument: 'b':問題と解決策
配列
エラー
関数
pythonのmap関数の使い方について解説!リストの要素に関数を適用。
配列
関数
Pythonでゼロパディング(ゼロ埋め)を活用したデータ整形テクニック
python
関数
*argsと**kwargsとは?Pythonでの関数の可変長引数の使い方を解説
python
関数
PythonのLambda関数の使い方・sortedのキーの使用方法・例題について
python
関数

