编写一个名为 missing_letters 的函数,该函数带有一个字符串参数,并返回一个新字符串,该字符串包含字母字符串中不在参数字符串中的所有字母。返回的字符串中的字母应按字母顺序排列。
它还应该使用全局变量 alphabet 。它应直接使用此全局变量,而不要通过参数或本地副本使用。它应该循环遍历字母,以确定输入参数中缺少哪些字母。 函数 missing_letters 应该将缺少字母的列表组合成一个字符串并返回该字符串。
在列表 test_miss 中的字符串上编写一个循环,并为每个字符串调用 missing_letters 。为每个字符串打印一行,列出缺少的字母。例如,对于字符串“ aaa”,输出应为以下内容。
aaa缺少字母bcdefghijklmnopqrstuvwxyz
我尽力解决了这个问题。该程序正在运行,但没有提供 所需的输出。
test_miss = ["b","zzz"]
def missing_letters(s):
missingAlphabets = ""
global alphabet
for c in s:
i=0
while i < len(alphabet):
if alphabet[i] not in c:
missingAlphabets += alphabet[i]
i += 1
sortedmissingAlphabetslists = sorted(missingAlphabets)
sortedmissingAlphabets = ''.join(sortedmissingAlphabetslists)
return sortedmissingAlphabets
for i in test_miss:
print('{} is missing letters {}'.format(i,missing_letters(i)))
程序为任何带有单个字符的字符串提供适当的输出,例如-“ b”
即:b缺少字母acdefghijklmnopqrstuvwxyz
但是对于具有多个字符的字符串,例如:“ zzz”,输出为:
zzz缺少字母aaabbbcccdddeeefffggghhhjjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyy
但我想要: zzz缺少字母abcdefghijklmnopqrstuvwxy
答案 0 :(得分:2)
src
类型已经为您处理了大部分工作。
<script>
如果设置了set
和import string
def missing_letters(s):
return ''.join(sorted(set(string.lowercase) - set(s)))
,则x
是y
中出现但x - y
中没有的项的集合。一个有一组丢失的字符,您可以对它们进行排序,然后将排序后的元素重新加入一个字符串中。
x
答案 1 :(得分:1)
保持已经定义的精神。问题是您要多次测试missing_letters
函数中的每个字母。因此,您只想检查字符(来自字母)是否在字符串中。因此,请取出多余的for loop
,它会循环遍历参数中的字母-像这样
alphabet = 'abcdefghijklmnopqrstuvwxyz'
test_miss = ["b","zzz"]
def missing_letters(s):
missingAlphabets = ""
global alphabet
i = 0
while i < len(alphabet):
if alphabet[i] not in s:
missingAlphabets += alphabet[i]
i += 1
sortedmissingAlphabetslists = sorted(missingAlphabets)
sortedmissingAlphabets = ''.join(sortedmissingAlphabetslists)
return sortedmissingAlphabets
for i in test_miss:
print('{} is missing letters {}'.format(i,missing_letters(i)))
b is missing letters acdefghijklmnopqrstuvwxyz
zzz is missing letters abcdefghijklmnopqrstuvwxy
答案 2 :(得分:0)
def has_duplicates(t):
t= histogram(t)
for i in t:
a=(t[i])
if a > 1:
return True
else:
return False
for i in test_dups:
f = has_duplicates(i)
if f == True:
print(i +' '+ 'has duplicates')
else:
print(i +' '+ 'has no duplicates')