

下記のプログラムを実行するとエラーが起きます。  
おそらくmapの部分でのエラーだと思いますが、仕組みがわからないためご質問させて頂きました。

**エラーメッセージ:**

[code]

    TypeError: 'int' object is not iterable
    
[/code]

**プログラム:**

[code]

    nums1 = [1,2,3,4,5,6,7,8]
    nums2 = [2,2,3,1,2,6,7,9]
    
    def ct(l):
        for i in l:
            print(i)
    
    print(list(map(ct,nums1)))
    
[/code]


CC BY-SA 4.0
2022-06-16T23:44:42.833
89434
2022-07-10T05:27:56.560
2022-07-10T05:27:56.560
3060
52935
question
python python3
map 使用時に TypeError: 'int' object is not iterable エラーが発生する


[map](https://docs.python.org/ja/3/library/functions.html#map)はリストの
**要素ひとつひとつを取り出し** て  
それぞれの要素に対して関数を適用する組み込み関数ですので、  
下記のように書き換えるとエラーが出ずに動きます。(`ct`関数の戻り値は考慮していません)

[code]

    def ct(l):
        # 修正後
        print(l)
    
        # 修正前
        #for i in l:
        #    print(i)
    
[/code]

[Pythonのmap()でリストの要素に関数・処理を適用](https://note.nkmk.me/python-map-usage/)の例のように  
abs関数をリストのそれぞれの要素に実行する例を見ると直感的に理解しやすい人もいるかもしれません。

[code]

    print(list(map(abs, nums1)))
    
[/code]


CC BY-SA 4.0
2022-06-17T00:52:02.193
89437
2022-06-17T00:52:02.193
9820
89434
answer