'int'对象不能迭代python3?

时间:2017-10-10 19:49:00

标签: python-3.x object iterable

查看有关问题的帖子,但没有人帮助我理解问题或解决问题:

# This is the definition of the square() function
def square(lst1):
    lst2 = []
    for num in lst1:
        lst2.append(num**2)
    return lst2

n = [4,3,2,1]

print(list(map(square, n)))
>>>
File "test.py", line 5, in square
    for num in lst1:
TypeError: 'int' object is not iterable

square()函数定义中该行有什么问题,解决方案是什么? 非常感谢!

1 个答案:

答案 0 :(得分:0)

mapsquare应用于您列表中的每个项目。

因此在square中包含循环是多余的。调用函数时lst1已经是一个整数。

要么:

result = square(n)

或:

result = [i*i for i in n]

后者更好&快于

result = list(map(square,n))

使用:

def square(i):
    return i*i 

(或lambda