对于循环意外行为

时间:2016-12-27 15:52:59

标签: python for-loop python-3.5

我是一名蟒蛇初学者,我正在学习for循环。所以,任何人都可以告诉我这段代码有什么问题,因为我的程序没有运行(即使是在PYTHON SHELL上)

words = ['cat', 'window', 'defenestrate']
for w in words:
    if len(w) > 6:
        words.insert(0, w)

2 个答案:

答案 0 :(得分:1)

您的代码似乎有2个问题,由@ mic4ael评论: 第一个是缩进,words.insert应该在if块内,同样,你要附加到你正在循环的相同列表,如果匹配则会导致无限循环。

解决方案是正确缩进并创建一个新列表以保存匹配,即:

words = ['cat', 'window', 'defenestrate']
wordsMatch = []
for w in words:
    if len(w) > 6:
        wordsMatch.insert(0, w)
print wordsMatch

demo

答案 1 :(得分:0)

因为您正在创建无限循环。迭代该列表,如果找到长度超过6个字符的单词,则将其添加到列表中。