如何查找一个秘密单词是否包含列表中的所有字符?

时间:2012-10-19 09:40:17

标签: python string list function

我一直试图解决这个问题,因为它是构建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'

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

1 个答案:

答案 0 :(得分:7)

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

def isWordGuessed(secretWord, lettersGuessed):
    return set(secretWord) <= set(lettersGuessed)
相关问题