s=array1 #user inputs an array with text in it
n=len(s)
f=arange(0,26,1)
import collections
dict = collections.defaultdict(int)
for c in s:
dict[c] += 1
for c in f:
print c,dict[c]/float(n)
在输出中,c是数字而不是字母,我不知道如何将其转换回字母。在
还有,有没有什么方法可以把频率/字母输入数组,这样就可以把它们绘制成直方图了?在
Tags:
如果您使用的是python2.7或更高版本,那么可以使用collections.Counter。在
Python2.7+
Python 3+
^{pr2}$这还将按频率降序返回(char,frequency)元组。在
要将一个数字转换成它所代表的字母,只需使用内置的
chr
:应该指出的是,您没有使用正确类型的参数调用map(因此} 。举例说明:
TypeError
)。它需要一个函数和一个或多个iterables,该函数应用于该函数。第二个参数是toChar[i],它是一个字符串。所有ITerable实现^{DTing's answer让我想起了collections.Counter:
^{pr2}$相关问题 更多 >
编程相关推荐