python - 我如何使用设置交集方法来确定一个刺是一个 pangram?
问题描述
我应该编写一个代码来确定一个字符串是否是一个 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_lowercase 返回一个与列表进行比较的字符串。
以下代码检查字母表中的所有字母是否都被句子中的相同字母覆盖。我对字母表使用了 freezeset,因为它是一个不可变的值:
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]:
推荐阅读
- c++ - Netbeans IDE 问题:当我 cout << "Hello World" << endl; 在输出中只有一个字母是 H
- javascript - Firebase Javascript保存新的信息子键
- matlab - Matlab多维外推
- java - 更新 Hibernate 实体时如何避免填写缺失的字段?
- python - 覆盖 Django Rest Framework 序列化的 create 方法
- json - 尝试在 django 项目上使用 AJAX 方法获取本地 JSON 文件时出现错误 404(未找到)
- string - 是否可以在 kotlin 中将文件转换为原始字符串
- python - Discord.py - 当有人提到他时,机器人不回答
- azure-devops - 模仿其他 Microsoft 提供的小部件默认配置行为
- python - tkinter:为什么不删除(“全部”)删除组合框和条目小部件?