2016-12-27 139 views
1

我是一个Python初学者,我正在学习有关for循环。所以,请谁能告诉我,因为我的程序不运行(甚至在PYTHON SHELL)For循环意外行为

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

你得到了什么错误? –

+9

据我可以告诉有两个主要问题。缩进是不正确的,并且您正在循环并修改列表 – mic4ael

+0

对于@ mic4ael提到的两个问题,也许它“不起作用”的原因是因为它仍然期待着另一行。再次按下输入键,它会运行并抛出错误。 –

回答

1

您的代码似乎有两个问题,通过@mic4ael评论有什么错此代码: 首先是缩进,words.insert应该是if块内,此外,你追加到你循环相同的列表,这将导致无限循环,如果有一个匹配。

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

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

demo

+0

@ mic4ael非常感谢 – Faruq

+0

不客气!如果我的答案帮助了你,请考虑接受它作为正确答案,谢谢! –

0

因为要创建一个无限循环。您遍历该列表,如果您发现一个长度超过6个字符的单词,则将其添加到列表中。