我需要使用迭代功能来创建所有少于3个字母的单词的列表。我不断收到一些int错误。
[[3, 6, 9],
[2, 5, 8],
[1, 4, 7]]
答案 0 :(得分:1)
得到TypeError: 'int' object is not iterable
是因为您在函数中声明了aList = 0
,该函数将覆盖传递给它的参数。
对于python循环的工作方式似乎有些困惑。遍历列表时,它将返回值而不是索引。因此您可以直接使用它。
def shortWords(aList):
words = [] # Declared to store any short words found
for word in aList:
if len(word) <= 3:
words.append(word) # Short word found, appending to list
return words # Return results
print(shortWords(['Hello', 'my', 'name', 'is', 'Inigo', 'Montoya']))
# ['my', 'is']
答案 1 :(得分:0)
因为您有一个:
aList = 0
在代码的第二行!
这将覆盖实际列表。
因此应将其删除,然后它将起作用,如下所示:
def shortWords(aList):
words = []
for i in aList:
if len(i) <= 3:
words.append(i)
return words
请注意,它aList
不包含索引,但是已经包含值,请删除一些步骤