循环意外行为

2024-04-19 13:33:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python初学者,正在学习for循环。所以,有谁能告诉我这段代码有什么问题,因为我的程序没有运行(即使在PYTHON SHELL上)

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

Tags: 代码in程序forlenifshellwindow
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

因为你在创造一个无限循环。你遍历这个列表,如果你发现一个单词超过6个字符,你就把它添加到列表中。你知道吗

相关问题 更多 >