如何知道多少倍串组S,T和N出现在每个下面的话,有一个像这样的输出:不同的字母在不同的字词中出现多少次?
- 描述:第2,T 1,N + 1
- 声明S 2 ,t 3,n 1
单词不是事先知道的。我脑海中想到的第一件事是制作字典,但对于字典我们只能有两个未知数,所以任何提示如何接近它? 在此先感谢。
如何知道多少倍串组S,T和N出现在每个下面的话,有一个像这样的输出:不同的字母在不同的字词中出现多少次?
单词不是事先知道的。我脑海中想到的第一件事是制作字典,但对于字典我们只能有两个未知数,所以任何提示如何接近它? 在此先感谢。
from collections import defaultdict
def counter(STRING):
h=defaultdict(int)
for i in STRING:
if i in "stn":
h[i]+=1
return h
for s in ['description','statements']:
k=counter(s)
print k + " for " + s
但是,如何指定例如计数s 2,t 1,n 1是属于“描述”还是属于“语句”? – Adia 2010-10-21 11:17:47
请参阅编辑。你可以自己想出来。 – ghostdog74 2010-10-21 11:21:50
谢谢。打印应该是这样的:print k,“for”,s,否则会给出错误:不支持的操作数类型为+: – Adia 2010-10-21 12:02:33
在Python≥2.7和≥3.1you could use collections.Counter
。
>>> from collections import Counter
>>> Counter("descriptions")
Counter({'i': 2, 's': 2, 'c': 1, 'e': 1, 'd': 1, 'o': 1, 'n': 1, 'p': 1, 'r': 1, 't': 1})
(对于Python≥2.5存在http://code.activestate.com/recipes/576611/的实现。)
反类有一般词典的界面,让您可以使用x['n']
得到计数。
>>> print("%s %s, %s %s, %s %s" % ('s', _['s'], 't', _['t'], 'n', _['n']))
s 2, t 1, n 1
您正在使用哪个版本的Python? – kennytm 2010-10-20 09:30:18
请用[家庭作业]标记标记作业。 – 2010-10-20 10:50:46
Python版本2.6.5 – Adia 2010-10-20 11:16:32