2016-07-25 6 views
0

내가하려는 것은 각 단어의 첫 글자를 소문자 az 알파벳 및 인쇄 (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