我上次发布了另一篇关于相同代码的帖子,但这个代码已更新并输出新错误。
它输出多个列表并具有 ValueError
输入
firstletter = "a"
secondletter = "p"
thirdletter = ""
fourthletter = ""
lastletter = "e"
和输出
['apace', 'apage', 'apode', 'apple']
['apage', 'apode', 'apple']
['apode', 'apple']
错误
Traceback (most recent call last):
File "C:\Users\K\Documents\Files\Codes\Python\Wordle\untitled5.py", line 67, in <module>
first()
File "C:\Users\K\Documents\Files\Codes\Python\Wordle\untitled5.py", line 21, in first
second()
File "C:\Users\K\Documents\Files\Codes\Python\Wordle\untitled5.py", line 30, in second
third()
File "C:\Users\K\Documents\Files\Codes\Python\Wordle\untitled5.py", line 34, in third
fourth()
File "C:\Users\K\Documents\Files\Codes\Python\Wordle\untitled5.py", line 47, in fourth
words.remove(d)
ValueError: list.remove(x): x not in list
第一个输出列表是想要的结果,但是不知道为什么会显示多个列表可能是for循环的原因
def first():
for a in list(words):
if len(firstletter) == 0:
second()
if a[0] == firstletter:
continue
else:
words.remove(a)
second()
def second():
for b in list(words):
if len(secondletter) == 0:
third()
if b[1] == secondletter:
continue
else:
words.remove(b)
third()
等等...
最后一个是
def final():
for e in list(words):
if len(finalletter) == 0:
printout()
if e[4] == finalletter:
continue
else:
words.remove(e)
printout()
printout() 将检查列表是否为空,如果不是则打印列表否则打印“列表为空”
如果是 for 循环问题,我该如何解决,或者是否有更简单的方法来执行此循环?谢谢。