这只是游戏的一部分,一个函数接受 secret 单词和猜出的字母作为参数,并告诉您他们是否猜对了单词。
老实说,这是来自 edX 类(class)的作业,但是我已经通过了这个作业,这段代码有效。我只是想知道它是否可以写得更好。论坛中的一些人在谈论他们如何用 1 行解决它,这就是我问的原因。
def isWordGuessed(secretWord, lettersGuessed):
guessed = []
l= str(lettersGuessed)
s= list(secretWord)
for i in l:
if i in s:
guessed.append(i)
guessed.sort()
s.sort()
return guessed == s
这里以评分员的测试用例之一为例:
isWordGuessed('榴莲', ['h', 'a', 'c', 'd', 'i', 'm', 'n', 'r', 't', '你'])
像这样的东西很短:
def isWordGuessed(secretWord, lettersGuessed):
return all([c in lettersGuessed for c in secretWord])
对于 secretWord
中的每个字符,确保它在 lettersGuessed
中。这基本上创建了一个 bool 值列表和内置的 all如果数组中的每个元素都是 True
,则返回 True
。
此外,FWIW:地道的 python 将使用下划线而不是驼峰式大小写。
我是一名优秀的程序员,十分优秀!