猜字游戏 - 这可以写得更好吗?

时间:2016-10-07 00:56:47

标签: python python-3.x

这只是游戏的一部分,一个接受秘密词和猜测作为参数的字母的功能,并告诉你他们是否正确猜到了这个词。

我完全诚实,这是来自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'])

1 个答案:

答案 0 :(得分:6)

这样的事情非常简短:

def isWordGuessed(secretWord, lettersGuessed):
  return all([c in lettersGuessed for c in secretWord])

对于secretWord中的每个字符,请确保lettersGuessed中的字符。这基本上创建了一个布尔列表,如果数组中的每个元素都是True,则内置all返回True

另外,FWIW:Idiomatic python会使用下划线而不是驼峰。