我有一封信清单。
我需要定义一个带有两个参数的函数,第一个是字符串,第二个是字母列表。然后返回布尔值,指示字符串中的所有字母是否都在字母列表中。
我尝试了循环,但它只会检查0索引,而没有其他检查。
lettersGuessed = ['a', 'b','c', 'p', 'l', 'e']
def isWordGuessed(str, lettersGuessed):
'''
secretWord: string, the word the user is guessing
lettersGuessed: list, what letters have been guessed so far
returns: boolean, True if all the letters of secretWord are in lettersGuessed;
False otherwise
'''
if all(list(str)) in lettersGuessed:
return True
else:
return False
print(isWordGuessed('bcp', lettersGuessed))
答案 0 :(得分:0)
您的回答很简单
def isWordGuessed(str, lettersGuessed):
return all(letter in lettersGuessed for letter in str)
也请不要使用str
之类的内置名称作为变量
答案 1 :(得分:0)
我不推荐这两种方法,但是简单的解决方案是使用for循环:
for c in str:
if c not in lettersGuessed:
return False
return True
或理解:
return all(c in lettersGuessed for c in str)
但是您不应该这样。列表从根本上来说是不良的数据结构,用于检查是否存在元素。改用一组:
return all(c in lettersGuessed for c in set(str))
理想情况下,您应该从一开始就设置str。有关一些示例,请参见docs。
最后,不要将str称为“ str”。 “ str”是Python本身使用的变量。当您命名其他字符串str时,您将覆盖该变量。使用“字符串”或“ real_string”或类似的名称代替。