2016-07-25 5 views
0

私がしようとしているのは、各単語の最初の文字を 小文字のアルファベットと比較しています(word_frequencyに似ています)何個 時間単語は(このような)アルファベット の各文字で始まる最初のアルファベットとAZアルファベットとを比較するカウンタが得られません

a = 0 b = 2, c = 0, d = 2 ------------ y = 1, z = 0 

が、私はまだのようカウンターを介してこれを行うための方法を見つけることができませんか、私(初心者)のために働いていたものを見つけました。私が持っていた考えは、

for w in word_count: 
     l_freq = [] 
     l_freq.append(w[0]) 

の行に沿って何かをしてから、それと比較していましたか?文字列内の文字だけではなく、アルファベット全体と比較する方法がわからないのですか?

また、周波数クリーナーを印刷する方法はありますか?カウンターや角かっこは表示されませんか?

from collections import Counter 

def function(): 
    string = "This is a string written in python." 
    word_count = string.split() 

    char_count = 0 

    for char in string: 
     if char != " " and char != ".": 
      char_count += 1 

    word_freq = Counter(word_count) 

    print "Word count: " + str(len(word_count)) 
    print "Average length of word: " + str(char_count/len(word_count)) 
    print "" 
    print "Word frequency: " 
    print word_freq 

答えて

0

のは、私たちはこのようないくつかのテストデータを持っているとしましょう:

In [1]: test_data = ''' 
    ...: hello 
    ...: hi 
    ...: goodbye 
    ...: bye 
    ...: Bye! 
    ...: lol 
    ...: lmao 
    ...: rofl 
    ...: ''' 

各単語の最初の文字をカウントするには、あなたがこれを行うだろう:あなたがしている

counter = Counter(w[0] for w in test_data.split()) 

基本的にやっている。私はあなたが欲しい考える期待される出力を得るには、あなただけ(あなたがまだの場合はimport string)そうのように、そのカウントして、各小文字を関連付ける必要があります。

for letter in string.ascii_lowercase: 
    print letter, '=', counter[letter] 
私が示したテストデータ用

a = 0 
b = 1 
c = 0 
d = 0 
e = 0 
f = 0 
g = 1 
h = 2 
i = 0 
j = 0 
k = 0 
l = 2 
m = 0 
n = 0 
o = 0 
p = 0 
q = 0 
r = 1 
s = 0 
t = 0 
u = 0 
v = 0 
w = 0 
x = 0 
y = 0 
z = 0 
+0

すぐにお試しいただきありがとうございました。すぐに解決策が見つかるとすぐに解決します。 – LiamSutton

関連する問題