首页 > 解决方案 > 不明白为什么这段代码不起作用,如果有人能正确解释,我会很感激

问题描述

我正在尝试删除每个元素中少于 4 个字符的元素并且它确实有效

使用 while-loop 但我不明白为什么它不适用于 for-loop - 请帮助,谢谢

words = ['elephant','cat','dog','bird','lion']

    for i in range(len(words)):
        word = words[i]
        if len(word)<4:
            word.pop(i)

标签: pythonpython-3.xlist

解决方案


总的来说,您的问题来自:

word.pop(i)

您正在尝试在字符串上使用 pop ,而不是在您的列表中。您的代码也不是“Pythonic”,因为它似乎在尝试使用索引值,而您可以在不使用它的情况下对列表进行交互。

可以简化您的代码以创建一个包含所需单词的新列表。

words = ['elephant','cat','dog','bird','lion']
output_words = []

for word in words:
    if len(word) < 4:
        pass
    else:
        output_words.append(word)
print(output_words)

推荐阅读