python - python的缺失字母方法
问题描述
我有下面的代码,但它没有按预期工作,我看不出哪里出错了,我使用的是 Python 3。该missing_letters
方法没有按预期工作,因为第二个输出错误,我需要它来输入并使用字母字符串作为比较返回丢失的字母
alphabet = "abcdefghijklmnopqrstuvwxyz"
test_miss = ["zzz", "subdermatoglyphic", "the quick brown fox jumps over the lazy dog"]
def missing_letters(string):
compare = histogram(string)
for key in sorted(compare):
if key in alphabet:
result = alphabet.replace(key,'')
return result # print result
else:
return None
for letters in test_miss:
if missing_letters(letters) == None:
print(letters, 'uses all the letters')
else:
print(letters , 'is missing letters', missing_letters(letters))
输出:
zzz is missing letters abcdefghijklmnopqrstuvwxy
subdermatoglyphic is missing letters bcdefghijklmnopqrstuvwxyz
the quick brown fox jumps over the lazy dog uses all the letters
解决方案
您不需要计算字母的数量,您可以直接使用一组(输入中的每个字母只会出现一次string
)。一旦你有了那个集合,你可以从字母表中减去这个集合,你最终会得到一个包含缺失字母的集合:
from string import ascii_lowercase
alphabet = set(ascii_lowercase)
def missing_letters(string):
return alphabet - set(string.lower())
print(missing_letters("abcdefghijklmnopqrstuv"))
会输出{'w', 'y', 'x', 'z'}
。请注意,这ascii_lowercase
只是一个包含所有小写字母的字符串。
推荐阅读
- r - 用点替换单个框并更改R中多个箱线图上的框的顺序
- uml - 如何在 UML 活动图中表示 3 个选项?
- sed - sed 命令查找所有单词都以大写字母开头的行
- android - 指导使用 Android Studio 连接到 Google 电子表格 API 的过程
- javascript - 以编程方式添加到手风琴部分Jquery中的列表项
- amazon-web-services - AWS ECS 在一个任务定义中启动多个容器
- angular - Angular 类名中的自定义后缀
- sql - 知道如何将每个客户的最新发票总和与特定金额相比较吗?
- python - 流媒体电影 Python 烧瓶
- c++ - boost::any / any_ostreamable 的奇怪行为