基本上,我已經分配了一個任務來計算字母中的每個字母在加密的文本中出現的次數。 一旦完成,每個字母的頻率按降序排列。例如[(1,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