我应该写一段代码来判断一个字符串是否为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
请告诉我是否有可能用这种方法解决这个练习,如果可能,我哪里出错了?
发布于 2021-11-06 13:51:42
string.ascii_lowercase返回一个可与列表进行比较的字符串。
下面的代码检查字母表中的所有字母是否都被句子中的相同字母所覆盖。我为字母表使用了一个冻结集,因为它是一个不可变值:
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]:
https://stackoverflow.com/questions/69856449
复制相似问题