2

我一直在尝试解决这个问题,因为它是构建 Hangman 游戏的一部分。

我的问题是我需要编写一个代码来检查所有列表项是否都在密码中。如果都在列表中,则返回 True,否则返回 False。

这是我所做的工作:

def isWordGuessed(secretWord, lettersGuessed):
    a_list = []
    for i in range(0, len(lettersGuessed)):

        a_list.append(lettersGuessed[i])
    str1 = ''.join(a_list)
    if str1 in secretWord:
        return 1
    else:
        return 0

isWordGuessed('apple', ['e', 'i', 'k', 'p', 'r', 's'])

但是,我试图这样做:

isWordGuessed('apple', ['a', 'p', 'l', 'p', 'e'])

它返回 False,即使列表中的所有字母都在“apple”中

我想我可以在不制作字符串的情况下解决这个问题,但我不知道。顺便说一句,这必须适用于给定的任何单词和列表。如果所有列表项都在一个单词中,则为真,否则为假...有帮助吗?

4

1 回答 1

7

我会将秘密词和已经猜到的字母都转换为集合,并检查秘密词的字符集是否是猜测字符集的子集:

def isWordGuessed(secretWord, lettersGuessed):
    return set(secretWord) <= set(lettersGuessed)
于 2012-10-19T09:45:08.740 回答