Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在Python中使用for和while循环消除列表中的单词_Python_Python 3.x_For Loop_While Loop - Fatal编程技术网

无法在Python中使用for和while循环消除列表中的单词

无法在Python中使用for和while循环消除列表中的单词,python,python-3.x,for-loop,while-loop,Python,Python 3.x,For Loop,While Loop,我试图通过重新排列“行星”一词来寻找所有7个字母的单词,作为练习(我使用了从这里下载的sowpods库:) 代码如下: file_name = 'sowpods.txt' a = open(file_name,'r') b = a.read() c = b.split('\n') d = [] for corr in c: if len(corr) == 7: d.append(corr) for corr in d: m = 0 wh

我试图通过重新排列“行星”一词来寻找所有7个字母的单词,作为练习(我使用了从这里下载的sowpods库:)

代码如下:

file_name = 'sowpods.txt'
a = open(file_name,'r')
b = a.read()
c = b.split('\n')
d = []

for corr in c:
    if len(corr) == 7:
        d.append(corr)
        
for corr in d:
    m = 0
    while m < 7:
        if (corr[m] == 'P' or corr[m] == 'L' or corr[m] == 'A' or corr[m] == 'N' or corr[m] == 'E' or corr[m] == 'T' or corr[m] == 'S'):
            pass
        else:
            d.remove(corr)
            break
        m += 1
print(d)
文件名='sowpods.txt'
a=打开(文件名'r')
b=a.读()
c=b.split('\n')
d=[]
对于c中的corr:
如果len(corr)==7:
d、 附加(corr)
对于d中的corr:
m=0
m<7时:
如果(corr[m]='P'或corr[m]='L'或corr[m]='A'或corr[m]='N'或corr[m]='E'或corr[m]='T'或corr[m]='S'):
通过
其他:
d、 删除(corr)
打破
m+=1
印刷品(d)

程序运行时没有任何错误消息,但它没有删除我期望它删除的许多单词,即使它删除了其他类似的单词,例如,它删除了单词“ZORILLA”,但没有删除“ZORILLE”。我不知道它为什么那样做。有人能解释一下,并建议对代码进行一些更改吗?

从您正在迭代的列表中删除一个项目会混淆迭代。只需将该项清空,或者以相反的方式迭代列表