2016-05-09 1 views
0

hier zusammenfassend ist mein Code:die Differenz zwischen sentence.count (x) und len (Satz)

f = open("C:/Python27/Brown.txt", 'rU') 
raw = f.read() 
sent = re.sub(r'[^\sa-zA-Z]', '', raw).upper().strip() 
count_A = sent.count('A') 
count_B = sent.count('B') 
...... 
count_Z = sent.count('Z') 
count_Blank = sent.count(' ') 
count_All = len(sent) 

Hier denke ich, dass ich nur Raum und Alpha-Zeichen geblieben, so dass, wenn ich die ZÄHLWERT zusammenzufassen, count_B, count_C ... count_Blank sollte gleich sein wie len (sended), oder? aber wenn ich zwei Werte vergleiche, war es nicht. Warum das passieren? Eigentlich brauche ich die Wahrscheinlichkeit von Buchstaben "A", "B", "C" ... "Blank", aber weiß nicht welchen Wert zu teilen, len (gesendet)? oder summiere count_A bis count_Blank.

+2

Haben Sie aus der [ 'collections' Modul] (https bei' Counter' Objekten hatten einen Blick: // docs. python.org/2/library/collections.html#collections.Counter)? Nach diesen Beispielen sollten Sie in der Lage sein, 'Counter (Liste (gesendet)) 'zu tun und dann das zurückgegebene Diktat nach bestimmten Buchstabenzählungen abzufragen. – wflynny

Antwort

2

Das Problem ist, dass Sie nur Leerzeichen mit sent.count(' ') gezählt haben, ich nehme an sent hat Newline (s) und/oder Registerkarte (n) zugeordnet.

Sie für Tabs zählen:

sent.count('\t') 

und Zeilenumbrüche:

sent.count('\n') 
Verwandte Themen