初学者问题(Python) - 如何在一定长度内从列表中删除单词

Car*_*lll 1 python

这就是我做的:

for word in doc:
    if len(word) < 3:
        doc.remove(word)
Run Code Online (Sandbox Code Playgroud)

但是,如果我这样做:

for word in doc:
    if len(word) < 3:
        print word
Run Code Online (Sandbox Code Playgroud)

返回的结果是:'O',''''30''''' '一世.' '如果'等等.

大多数两个角色项目被删除,但仍有一些仍然存在,我做错了什么?

Ban*_*Dao 5

问题是for循环的python.

例如:如果你喜欢这样:

arr = range(1, 10)
for x in arr:
    print x
    arr.remove(x)
Run Code Online (Sandbox Code Playgroud)

然后您将看到并非所有arr中的项目都被删除.

在您的情况下,我们可以这样做:

newDoc = [ word for word in doc if len(word) >= 3 ]
Run Code Online (Sandbox Code Playgroud)

欢迎来到python.