2012-04-23 15 views
1
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 

結果ショーPython:dictを別の行に印刷する方法は?

{'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} 

コード印刷のすべての単語とカウント周波数ワードを使用します。

私は別の行にdictを印刷したいと思います。

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

可能な方法はありますか?

答えて

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

はあなたに感謝します。あなたが歓迎します:) – ThanaDaray

+0

あなたは歓迎です:D – jamylak

+1

+1、私はこのIRLを聞いて、誰かがJSONに変換してそれを印刷するように頼んでいる人に話すのを覚えています。 –

2

あなたは、キーと値を反復処理し、これあなたが望むように、出力をフォーマットすることができるようにiteritemsを使用することができます。値とキーとint型として文字列を想定すると:

for k, v in d.iteritems(): 
    print '%s: %d' % (k, v) 
1
>>>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 
0

別の複雑な方法が

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

ラムダを使用して出力

key2 : 2 
key1 : 1 
関連する問題