8

Given the string:

a='dqdwqfwqfggqwq'

How do I get the number of occurrences of each character?

Seanny123
  • 8,776
  • 13
  • 68
  • 124
zjm1126
  • 34,604
  • 53
  • 121
  • 166

7 Answers7

18

In 2.7 and 3.1 there's a tool called Counter:

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

Docs. As pointed out in the comments it is not compatible with 2.6 or lower, but it's backported.

Bjorn
  • 5,272
  • 1
  • 24
  • 35
  • 12
    Jakob, if you want one line: import collections; collections.Counter("dqdwqfwqfggqwq") Ta-dah. :) – Bjorn Mar 04 '11 at 11:01
17

Not highly efficient, but it is one-line...

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}
unutbu
  • 842,883
  • 184
  • 1,785
  • 1,677
3

You can do this:

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

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

This method is efficient as well and is tested for python3.

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

For each letter count the difference between string with that letter and without it, that way you can get it's number of occurences

a="fjfdsjmvcxklfmds3232dsfdsm"
dict(map(lambda letter:(letter,len(a)-len(a.replace(letter,''))),a))
Frost.baka
  • 7,851
  • 2
  • 22
  • 18
0

python code to check the occurrences of each character in the string:

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

Please try this code if any issue or improvements please comments.

Brian Tompsett - 汤莱恩
  • 5,753
  • 72
  • 57
  • 129
jagadeesh
  • 1
  • 1
-1

one line code for finding occurrence of each character in string.

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