Итак, я пишу немного кода и попал в затруднительное положение, затруднение в том, что мне нужно удалить повторяющиеся значения из моего словаря.Я видел несколько постов, касающихся преобразования в кортеж и использования наборов для сохранения только уникальных значений.Однако эти решения не сработали для меня, так как моя ценность - целое число, а не список.
Так что просто интересно, может ли кто-нибудь помочь / указать путь, был бы очень благодарен.Пожалуйста, найдите код ниже.
import string
# Variables and the like
alphabet = string.ascii_uppercase
fname = input('Enter the name of file which contains the cipher text: ')
file = open(fname+'.txt', 'r')
ctext = file.read()
ltrfreq = ['E','T','A','O','I','N','S','R','H','L','D','C','U','M','F','P','G','W','Y','B','V','K','X','J','Q','Z']
freqs = {}
# creating a dictionary which pairs letters to the frequency in the text
for i in alphabet:
if ctext.count(i) == 0:
continue
else:
freqs[i] = ctext.count(i)
print(freqs)
# Need some code that removes duplicate values so as we don't replace letters that have the same frequency
# Replacing the highest frequency letters with the expected value
n = 0
for i in range(0, len(freqs)):
maximum = max(freqs, key=freqs.get)
for j in ctext:
ctext = ctext.replace(maximum, ltrfreq[n])
del freqs[maximum]
n += 1
print(ctext)
файл, который является входным, является просто .txt файлом, который просто содержит следующее для примера: