我怎么能用集合交集的方法来弄清楚刺痛是不是穿山甲



我应该写一段代码来确定字符串是否是pangram。我已经用另一种方法解决了这个练习,但我对用交集方法解决它很感兴趣。

我的代码不会引发错误,但当测试时,它会出现错误,而应该是真的。这是我的代码:

import string
def ispangram(str1, alphabet=string.ascii_lowercase):
a= str1.lower().replace(" ","")
if list(set(a).intersection(set(alphabet)))== alphabet:
return True
else:
return False

请告诉我是否可以用这种方法解决练习,如果可以,我哪里出了问题?

string.ascii_lower返回一个字符串,用于与列表进行比较。

下面的代码检查字母表中的所有字母是否都被句子中的同一个字母覆盖。我为字母表使用了一个frozenset,因为它是一个不可变的值:

def is_pangram(sentence, _alphabet=frozenset(string.ascii_lowercase)):
return not ( _alphabet - set(sentence.lower()))

样品用途:

In [51]: is_pangram("Being bounced around quickly annoyed the disheveled taxi drivers.")
Out[51]: False
In [52]: is_pangram('Glib jocks quiz nymph to vex dwarf.')
Out[52]: True
In [53]: is_pangram('Public junk dwarves quiz mighty fox.')
Out[53]: True
In [54]: is_pangram('Public junk dwarves quiz mighty foe.')
Out[54]: False
In [55]: 

相关内容

最新更新