制作小单词列表时,“ TypeError:'int'对象不可迭代”

时间:2018-11-13 00:47:10

标签: python

我需要使用迭代功能来创建所有少于3个字母的单词的列表。我不断收到一些int错误。

[[3, 6, 9],
 [2, 5, 8],
 [1, 4, 7]]

2 个答案:

答案 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不包含索引,但是已经包含值,请删除一些步骤