Проверка на наличие повторяющихся букв в списках с помощью функции гистограммы - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь выбить домашнее задание, но у меня возникают трудности с включением необходимой функции гистограммы.

Это код, с которым мне нужно работать:

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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...