-1

我上次发布了另一篇关于相同代码的帖子,但这个代码已更新并输出新错误。

它输出多个列表并具有 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 循环问题,我该如何解决,或者是否有更简单的方法来执行此循环?谢谢。

4

0 回答 0