查看有关问题的帖子,但没有人帮助我理解问题或解决问题:
# 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()
函数定义中该行有什么问题,解决方案是什么?
非常感谢!
答案 0 :(得分:0)
map
将square
应用于您列表中的每个项目。
因此在square
中包含循环是多余的。调用函数时lst1
已经是一个整数。
要么:
result = square(n)
或:
result = [i*i for i in n]
后者更好&快于
result = list(map(square,n))
使用:
def square(i):
return i*i
(或lambda
)