ich möchte ein Programm zur Textentschlüsselung schreiben und habe jetzt das Problem, dass ich nicht weiß wie ich einen Listeneintrag einer Unterliste mit dem Nächsten der gleichen Liste vergleichen kann. Danach muss ich allerdings die Buchstaben der Häufigkeit nach sortieren...
Der Code beinhaltet das ganze Programm, das Problem ist dann ab dem Kommentar nach Häufigkeit sortieren.
Code: Alles auswählen
##Informationen für den weiteren Verlauf
alphabet = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K" ,"L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "ß", "Ä", "Ö", "Ü"]
anzahl = [["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], ["ß", 0],["Ä", 0], ["Ö", 0], ["Ü", 0]]
sortiert = []
ersetzungh = ["E", "N", "I", "R", "S", "T", "A", "H", "D", "U", "L", "C", "G", "M", "O", "B", "W", "F", "K","Z", "V", "P", "Ü", "Ä", "ß", "Ö", "J", "Y", "X", "Q"]
ersetzungw = {"A" : "A", "B" : "B", "C" : "C", "D" : "D", "E" : "E", "F": "F", "G" : "G", "H" : "H", "I" : "I", "J" : "J", "K" : "K", "L" : "L", "M" : "M", "N" : "N", "O" : "O", "P" : "P", "Q" : "Q", "R" : "R", "S" : "S", "T" : "T", "U" : "U", "V" : "V", "W" : "W", "X" : "X", "Y" : "Y", "Z" : "Z", "ß" : "ß", "Ä" : "Ä", "Ö" : "Ö", "Ü" : "Ü"}
##Informationseingabe des Benutzers
print("Herzlich Willkommen bei ihrem Entschlüsselungsprogramm.", "\n", "Bitte geben sie bei der folgenden Texteingabe ihren zu entschlüsselten Text ein.")
text = input("Texteingabe: ")
text = text.upper()
text = text.replace(" ","")
text = text.replace(".","")
text = text.replace(":","")
text = text.replace(",","")
text = text.replace("!","")
text = text.replace(";","")
print(text)
##Häufigkeitsanalyse
b = 0
for testb in alphabet:
a = 0
for buchstabe in text:
if buchstabe == alphabet[b]:
anzahl[b][1] = anzahl[b][1] + 1
a += 1
b += 1
print(anzahl)
##nach Häufigkeit sortieren
länget = len(text)
print("\n", länget, "Buchstaben insgesamt")
i = 0
j = 1
for zahl in anzahl:
if anzahl[i][1] < anzahl[j][1]:
zahl.append(sortiert)
i += 1
j += 1
print(sortiert)