如何使用python获取每个字符的出现次数

时间:2011-03-04 10:50:53

标签: python string

这是字符串:

a='dqdwqfwqfggqwq'

如何获取每个角色的出现次数

我的老板告诉我,它只使用一行来做到这一点,

所以我该怎么做,

感谢

8 个答案:

答案 0 :(得分:18)

在2.7和3.1中有一个名为Counter的工具:

>>> import collections
>>> results = collections.Counter("dqdwqfwqfggqwq")
>>> results
Counter({'q': 5, 'w': 3, 'g': 2, 'd': 2, 'f': 2})

Docs。正如评论中指出的那样,它与2.6或更低版本不兼容,但它是backported

答案 1 :(得分:10)

效率不高,但它是单线的...

In [24]: a='dqdwqfwqfggqwq'

In [25]: dict((letter,a.count(letter)) for letter in set(a))
Out[25]: {'d': 2, 'f': 2, 'g': 2, 'q': 5, 'w': 3}

答案 2 :(得分:1)

(供将来参考)

这种performance comparison的各种方法可能会引起人们的兴趣。

答案 3 :(得分:1)

你可以这样做:

listOfCharac={}
for s in a:
    if s in listOfCharac.keys():
        listOfCharac[s]+=1
    else:
        listOfCharac[s]=1
print (listOfCharac)

输出{'d': 2, 'f': 2, 'g': 2, 'q': 5, 'w': 3}

此方法也很有效,并且针对python3进行了测试。

答案 4 :(得分:0)

对于每个字母计数字符串与该字母之​​间的差异,没有它,这样你就可以得到它的出现次数

a="fjfdsjmvcxklfmds3232dsfdsm"
dict(map(lambda letter:(letter,len(a)-len(a.replace(letter,''))),a))

答案 5 :(得分:0)

lettercounts = {}
for letter in a:
    lettercounts[letter] = lettercounts.get(letter,0)+1

答案 6 :(得分:0)

用于检查字符串中每个字符出现次数的python代码:

word = input("enter any string = ")
for x in set(word):
    word.count(x)
    print(x,'= is', word.count(x))

如果有任何问题或改进,请尝试此代码。

答案 7 :(得分:-1)

一行代码,用于查找字符串中每个字符的出现次数。

for i in set(a):print('%s count is%d'%(i,a.count(i)))