Я пытаюсь выбить домашнее задание, но у меня возникают трудности с включением необходимой функции гистограммы.
Это код, с которым мне нужно работать:
alphabet = "abcdefghijklmnopqrstuvwxyz"
test_dups = ["zzz","dog","bookkeeper","subdermatoglyphic","subdermatoglyphics"]
test_miss = ["zzz","subdermatoglyphic","the quick brown fox jumps over the lazy dog"]
def histogram(s):
d = dict()
for c in s:
if c not in d:
d[c] = 1
else:
d[c] += 1
return d
Мне нужнонаписать функцию с именем has_duplicates()
, которая принимает строковый параметр и возвращает True
, если в строке есть повторяющиеся символы. В противном случае он должен вернуть False
.
Реализовать has_duplicates()
, создав гистограмму с использованием функции histogram()
, описанной выше. Не используйте какие-либо реализации has_duplicates()
, приведенные в вашем учебнике. Вместо этого ваша реализация должна использовать счетчики в гистограмме, чтобы решить, есть ли какие-либо дубликаты.
Написать цикл над строками в предоставленном списке test_dups
. Выведите каждую строку в списке и укажите, есть ли в ней дубликаты, основываясь на возвращаемом значении has_duplicates()
для этой строки. Например, выходные данные для aaa
и abc
будут следующими:
aaa has duplicates
abc has no duplicates
Вывести строку, аналогичную приведенной выше, для каждой из строк в test_dups.
Writeфункция с именем missing_letters
, которая принимает строковый параметр и возвращает новую строку со всеми буквами алфавита, которых нет в строке аргумента. Буквы в возвращаемой строке должны быть в алфавитном порядке.
Моя реализация должна использовать гистограмму из функции histogram()
. Также следует использовать глобальную переменную alphabet
. Он должен использовать эту глобальную переменную напрямую, а не через аргумент или локальную копию. Он должен зациклить буквы в alphabet
, чтобы определить, что отсутствует во входном параметре.
Функция missing_letters
должна объединить список пропущенных букв в строку и вернуть эту строку.
Записать цикл над строками в списке test_miss и вызвать missing_letters
с каждой строкой. Напечатайте строку для каждой строки, перечисляя пропущенные буквы. Например, для строки «aaa» выходные данные должны быть следующими:
aaa пропущены буквы bcdefghijklmnopqrstuvwxyz
Если строка содержит все буквы в alphabet
, выходные данные должны сказатьон использует все буквы. Например, выход для самой строки alphabet
будет выглядеть следующим образом.
"abcdefghijklmnopqrstuvwxyz uses all the letters"
Для каждой строки в test_miss выведите строку, аналогичную приведенной выше.
Этонасколько я понял ...
def has_duplicates(t):
if histogram(t) > 1:
return True
else:
return False
Результат:
'>' not supported between instances of 'str' and 'int'