4
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

結果は示しています

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

それを行うための可能な方法はありますか?

4

6 に答える 6

20
>>> from pprint import pprint
>>> pprint(sums)
{'air': 2,
 'and': 1,
 'at': 3,
 'be': 1,
 'body': 1,
 ....., # and so on...
 'you': 2}
于 2012-04-23T11:34:26.640 に答える
4
>>>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
于 2012-04-23T12:10:06.650 に答える
2

キーと値を反復処理するために使用iteritemsできるため、出力を必要に応じてフォーマットできます。文字列をキー、intを値として想定:

for k, v in d.iteritems():
    print '%s: %d' % (k, v)
于 2012-04-23T11:39:16.970 に答える
0

ラムダを使用する別の複雑な方法

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

出力

key2 : 2
key1 : 1
于 2013-01-23T05:22:26.547 に答える
0

Python3-メソッド名と構文の更新-スウィズルの素晴らしいコレクション

1-ラムダは、主にfilter、map、reduceなどで使用される使い捨ての無名関数です。
ここでは、printとkey、valueの反復を含む関数を作成しています。

f = lambda *x: None; 
f( *( print( x,":",y ) for x,y in genre_counting.items() ) )

Games : 3862
Productivity : 178
Weather : 72
Shopping : 122
Reference : 64
Finance : 104

2-repr()は、オブジェクトの正規の文字列表現を返します。

for x in genre_counting:
print(repr(x),":",genre_counting[x])

'Games' : 3862
'Productivity' : 178
'Weather' : 72
'Shopping' : 122
'Reference' : 64
'Finance' : 104

3-%sは文字列プレースホルダーです。%iは整数のプレースホルダーです

for k, v in genre_counting.items():
print( '%s : %i' % (k, v) )

Games : 3862
Productivity : 178
Weather : 72
Shopping : 122
Reference : 64
Finance : 104
于 2019-09-01T05:16:55.233 に答える
0

追加の関数を使用する必要はなく、単純なforループを使用します。

student = {"Name":"Chandler Bing","Age":24,"Subject":["Sarcasm","Joke"]}
print(student)
for i in student:
    print(i,":",student[i])
Name : Chandler Bing
Age : 24
Subject : ['Sarcasm', 'Joke']
于 2020-11-08T12:40:07.133 に答える