2017-05-30 5 views
0
import re 

from collections import Counter 

words = re.findall(r'\w+', open('test01_cc_sharealike.txt').read().lower()) 
count = Counter(words).most_common(10) 


print(count) 

Wie kann ich den Code ändern, damit es in wie folgt formatiert:Formatierung Die Ausgabe von gemeinsamen Worten

Word number 

word number 

statt einer Liste

ich das Format sein will: das Wort zuerst, dann 4 Leerzeichen und die Nummer des Wortes auf dem Text erscheint und so weiter

+1

Sollte das finden, was Sie brauchen hier: https://stackoverflow.com/questions/9535954/print-lists-as-tabular-data – Pythonista

Antwort

0

ein Just for-Schleife verwenden, so dass anstelle von print(count), könnten Sie verwenden:

for p in count: 
    print(p[0]+" "+str(p[1])) 

jedoch für die Zwecke der Formatierung, würden Sie wahrscheinlich lieber die Zahlen auszurichten, so dass Sie verwenden sollten:

indent=1+max([len(p[0]) for p in count]) 

for p in count: 
    print(p[0].rjust(indent)+str(p[1])) 
+0

Vielen Dank! Das hat funktioniert. –

+0

Strings haben die Methoden '.ljust' und' .rjust'. Sie müssen also keine Leerzeichen mit '" * * "(indent-len (p [0]))' erstellen. Außerdem ist es im Allgemeinen besser, 'format' (oder eine andere von Pythons Methoden zur Formatierung von Zeichenfolgen) zu verwenden, anstatt Ihre Ausgabedaten manuell zu konvertieren und zu verketten. –