这只是游戏的一部分,一个接受秘密词和猜测作为参数的字母的功能,并告诉你他们是否正确猜到了这个词。
我完全诚实,这是来自edX课程的作业,然而我已经通过了此作业,此代码有效。我只是想知道它是否可以写得更好。讨论论坛中的一些人正在谈论他们如何用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('durian', ['h', 'a', 'c', 'd', 'i', 'm', 'n', 'r', 't', 'u'])
答案 0 :(得分:6)
这样的事情非常简短:
def isWordGuessed(secretWord, lettersGuessed):
return all([c in lettersGuessed for c in secretWord])
对于secretWord
中的每个字符,请确保lettersGuessed
中的字符。这基本上创建了一个布尔列表,如果数组中的每个元素都是True
,则内置all返回True
。
另外,FWIW:Idiomatic python会使用下划线而不是驼峰。