Python: ¿cómo imprimir dict en línea separada?

import re sums = dict() fh= open('wordcount.txt','r') for line in fh: words = [word.lower() for word in re.findall(r'\b\w+\b', line)] for word in (words): if word in sums: sums[word] += 1 else: sums[word] = 1 print sums fh.close 

resultado show

 {'and': 1, 'heart': 1, 'love': 2, 'is': 1, 'pass': 1, 'rest': 1, 'wounded': 1, 'at': 3, 'in': 3, 'lie': 1, 'winchelsea': 1, 'there': 1, 'easy': 1, 'you': 2, 'body': 1, 'be': 1, 'rise': 1, 'shall': 4, 'may': 2, 'sussex': 1, 'montparnasse': 1, 'not': 3, 'knee': 1, 'bury': 3, 'tongue': 1, 'champmedy': 1, 'i': 5, 'quiet': 1, 'air': 2, 'fresh': 1, 'the': 1, 'grass': 1, 'my': 3} 

El código imprime toda la palabra y cuenta el uso de la palabra de frecuencia.

Me gustaría imprimir dict en línea separada.

 'and': 1 'heart': 1 'love': 2 ... 

¿Alguna forma posible de hacer eso?

 >>> from pprint import pprint >>> pprint(sums) {'air': 2, 'and': 1, 'at': 3, 'be': 1, 'body': 1, ....., # and so on... 'you': 2} 

Podría usar iteritems para iterar a través de claves y valores y así poder formatear la salida como desee. Asumiendo cadenas como claves e ints como valores:

 for k, v in d.iteritems(): print '%s: %d' % (k, v) 
 >>>for x in sums: print(repr(x),":",dic[x]) 'and' : 1 'heart' : 1 'sussex' : 1 'rise' : 1 'love' : 2 'be' : 1 'may' : 2 'the' : 1 'is' : 1 'in' : 3 'body' : 1 'rest' : 1 'at' : 3 'pass' : 1 'not' : 3 'knee' : 1 'air' : 2 'bury' : 3 'tongue' : 1 'lie' : 1 'winchelsea' : 1 'i' : 5 'there' : 1 'grass' : 1 'quiet' : 1 'shall' : 4 'montparnasse' : 1 'fresh' : 1 'easy' : 1 'wounded' : 1 'you' : 2 'champmedy' : 1 'my' : 3 

Otra forma compleja usando lambda.

 f = lambda *x: null; f( *( print( x,":",y ) for x,y in mydict.iteritems() ) ) 

Salida

 key2 : 2 key1 : 1