python中的any()all()函数

2024-04-25 01:31:44 发布

您现在位置:Python中文网/ 问答频道 /正文

编写一个isAllLettersUsed(word,required)函数,该函数接受单词作为第一个参数,如果单词包含第二个参数中找到的所有字母,则返回True。在

示例

>>> isAllLettersUsed('apple', 'apple')
True
>>> isAllLettersUsed('apple', 'google')
False
>>> isAllLettersUsed('learning python', 'google')
True
>>> isAllLettersUsed('learning python', 'apple')
True

我在做的是

^{pr2}$

返回结果

^{3}$

Where as应该返回为

True
False
True
True

我不知道在这一点上我该怎么办我试了很多次但都失败了。有什么建议吗??在


Tags: 函数falsetrue示例apple参数google字母
3条回答

更改生成器表达式中变量的名称。您使用循环变量required隐藏了名为required的参数。在

def isAllLettersUsed(word, required):
    if all(req in word for req in required):
        return True
    else: 
        return False

所发生的是,您正在为for循环中的变量required赋值,但是required是一个参数。您希望遍历required,并将{}的每个元素保存到一个新变量中。如果是单词,则检查该元素。在

另外,如果您使用all(),那么您的if-else是多余的。只要说return all(...)

只需查看required中的所有字母是否都是word:

def  isAllLettersUsed(word, required):
    return all(ch in word for ch in required)

在for循环中使用required来检查来自word的每个字母是否在word中,required指的是传递的每个字符而不是必需的参数,因此它总是返回True,因为word中的每个字母都必须在word中。在

相关问题 更多 >