AttributeError: 'tuple' - Objekt hat kein Attribut 'split'
Ich versuche zu schreiben, einige Python zu nehmen, eine Chiffre und es aufgeteilt in die Buchstaben und deren Häufigkeit in der Chiffre. Das Problem das ich habe ist, dass ich den code zum drucken der Häufigkeit der Buchstaben im verschlüsselten, aber ich werde versuchen, um Sie individuell, so kann ich Sie in Prozentsätze zu vergleichen, die gegen die gemeinsamen Werte in einem Buch gefunden, zum Beispiel. E. g. Ich konnte vergleichen Sie die Anzahl der E ' s in meiner Chiffre, um den durchschnittlichen Wert von 12,7% in der englischen Sprache. Das Problem das ich habe ist, wenn ich versuche, und teilen Sie die Liste der Buchstaben und deren Häufigkeit, bekomme ich die AttributeError: 'tuple' - Objekt hat kein Attribut 'split'. Nicht sicher, was ich tun kann, damit etwas Hilfe würde sehr geschätzt werden. Hier ist mein code:
import von Sammlungen
import string
def freq():
info = input("File Name")
filehandle = open(info, "r")
data = filehandle.read().upper()
char_counter = collections.Counter(data)
for char, count in char_counter.most_common():
if char in string.ascii_uppercase:
print(char, count)
s = (char, count)
frequency = s.split(",")
for freq in frequency:
print(freq)
freq()
Dies ist die direkte Kopie der shell
File Nametest.rtf
E 59
Traceback (most recent call last):
File "/Users/x/Desktop/Frequency.py", line 17, in <module>
freq()
File "/Users/x/Desktop/Frequency.py", line 13, in freq
frequency = s.split(",")
AttributeError: 'tuple' object has no attribute 'split'
Und hier ist, was es vorher getan hat:
File Nametest.rtf
E 59
A 43
T 39
R 37
O 29
F 25
P 25
S 23
L 23
I 22
N 19
D 18
B 17
C 15
H 14
M 12
G 9
U 8
W 8
V 6
Y 4
X 3
K 3
Im suchen nach individuellen Dingen des E 12% 10% usw. oder so ähnlich wenn möglich.
Jegliche Hilfe würde sehr geschätzt werden. Vielen Dank im Voraus 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie ändern, Ihren code:
Den festen Zeilen:
Aus so winzigen Informationen schwer zu sagen, was ist die genaue Funktionalität dieser Zeilen, aber die Lösung wäre so etwas wie, dass.
Sind Sie, dass s ein Tupel, Tupel nicht geteilt haben, als das Komma ist nicht eine tatsächliche Teil des Tupel ist es eine Möglichkeit der Abgrenzung der unterschiedlichen Einträge im code. Split funktioniert nur für einige Arten, ich.e-Saiten, und würde nur funktionieren, wenn ein Komma war ein Teil der Zeichenkette/Typ-Instanz.
Ich bin nicht sicher, was Sie gedacht, um aus diesem Teil des Codes, aber Sie sagen, es zu schaffen, ein Tupel (char, count), dann split und das Tupel an, das Komma (nicht möglich, auch wenn es passieren würde, wäre eine array [char, count]), dann für jeden der Werte in dieser split-Tupel, drucken Sie den Wert, die würde print char, count.
Gehen vielleicht überdenken die Art und Weise, die Sie ging, über diese, werden Sie nicht bekommen, alle zweckdienlichen Informationen aus, die Spaltung, die Sie nicht bereits selbst eine Anzeige in der vor der print-Anweisung. Wenn Ihre Absicht war nur der Brief und die Frequenz, dann haben Sie schon getan, wenn Sie versuchen, um Proportionen, fügen Sie alle Frequenzen und dann wird jede einzelne Frequenz zu erhalten, der Anteil an der gesamten es darstellt?