【发布时间】:2018-03-22 08:05:34
【问题描述】:
浏览了有关问题的帖子,但没有一个帮助我理解问题或解决问题:
# 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() 函数定义中的那一行有什么问题,解决方法是什么?
非常感谢!
【问题讨论】:
-
edit你的问题,不要在cmets中完成。
-
现在
square太复杂了。map一次传递 1 个整数。你需要def square(n): return n*n -
您的函数中不需要
for num in lst1。该函数一次只接收一个列表元素。就做return lst1**2;返回一次性列表通常没有用处 -
感谢让-弗朗索瓦!我从 youtube 上复制了代码,这让我困扰了几个小时。现在我明白了原因。但是,我对此的最大问题是:如果这与我的原始问题相关,python 如何区分整数列表和整数?再次感谢。
-
哇!!!
Just do return lst1**2---从来没有想过这个,太神奇了!
标签: python-3.x object iterable