我要做的是比较每个单词的第一个字母和 小写字母a-z字母和打印(类似于word_frequency)有多少 一个单词以字母表中的每个字母开头 (比如这个)
a = 0 b = 2, c = 0, d = 2 ------------ y = 1, z = 0
但是我无法通过Counter找到这样做的方法,或者发现任何对我有用的东西(初学者)。我的想法是
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 :(得分: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