В принципе, мне была назначена задача подсчитать, сколько раз каждая буква в алфавите встречается в фрагменте зашифрованного текста. Как только это будет сделано, частота каждой буквы будет помещена в порядке убывания. Например, [(l, 2), (e, 1), {h, 1), (o: 1)]. Это я сделал, и он работает.Помощь в анализе частоты
Затем каждая буква в нисходящем списке должна быть заменена соответствующей буквой в этой строке: 'etaoinshrdlcumfwgypbvkjxqz' Вот что я не знаю, как это сделать.
До сих пор у меня есть это:
enc_text = input("Enter Encrypted Text: ").lower()
count = {'a':0, 'b':0, 'c':0, 'd':0, 'e':0, 'f':0, 'g':0, 'h':0, 'i':0, 'j':0, 'k':0, 'l':0, 'm':0, 'n':0, 'o':0, 'p':0, 'q':0, 'r':0, 's':0, 't':0, 'u':0, 'v':0, 'w':0, 'x':0, 'y':0, 'z':0}
for char in enc_text:
if char.isalpha():
count[char] += 1
print(enc_text)
print(count)
def get_value(count):
return count[1]
sorted_text = sorted(count.items(), key = get_value)
descending_text = reversed(sorted_text)
descending_text = list(descending_text)
print(descending_text)
most_frequent = {'e': 1, 't': 2, 'a': 3, 'o': 4, 'i': 5, 'n': 6, 's': 7, 'h': 8, 'r': 9, 'd': 10, 'l': 11, 'c': 12, 'u': 13, 'm': 14, 'w': 15, 'f': 16, 'g': 17, 'y': 18, 'p': 19, 'b': 20, 'v': 21, 'k': 22, 'j': 23, 'x': 24, 'q': 25, 'z': 26}
letters = list('abcdefghijklmnopqrstuvwxyz')
etaoin = list('etaoinshrdlcumfwgypbvkjxqz')
Я считаю, что я должен петлю над текстом в начале и посмотреть на него по буквам. Затем каждая буква должна быть заменена буквой в строке? Но я не уверен, как его реализовать.
Заранее спасибо за любую помощь
Для некоторых интересных примеров и поддержки библиотеки вы можете посмотреть здесь: https://docs.python.org/2/library/collections.html#collections.Counter – Pynchia
Вы решили свою проблему? Было бы приятно услышать решение :) – Mailerdaimon