不同字母出现多少次不同的字母?

时间:2010-10-20 09:29:02

标签: python

如何知道字符串s,t和n出现在以下每个单词中的次数,以获得如下输出:

  • 描述:s 2,t 1,n 1
  • 陈述s 2,t 3,n 1

这些单词事先不知道。我想到的第一件事就是制作一本字典,但对于字典我们只能有两个未知数,所以任何提示如何处理它? 提前谢谢。

3 个答案:

答案 0 :(得分:2)

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/中有一个实现。)

Counter类具有通常的字典界面,因此您可以使用x['n']来获取计数。

>>> print("%s %s, %s %s, %s %s" % ('s', _['s'], 't', _['t'], 'n', _['n']))
s 2, t 1, n 1

答案 1 :(得分:1)

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

答案 2 :(得分:0)

天真的实施:

d = {}
for c in s:
  d[c] = s.count(c)