You can count the number of occurrence of a special element with count()
method:
grades = ['b', 'b', 'f', 'c', 'b', 'a', 'a', 'd', 'c', 'd', 'a', 'a', 'b']
letters = ['a', 'b', 'c', 'd', 'f']
print(list(map(lambda letter: {letter: grades.count(letter)}, letters)))
Output:
[{'a': 4}, {'b': 4}, {'c': 2}, {'d': 2}, {'f': 1}]
If you want to do this without using letters
. you can do this:
grades = ['b', 'b', 'f', 'c', 'b', 'a', 'a', 'd', 'c', 'd', 'a', 'a', 'b']
print(list(map(lambda letter: {letter: grades.count(letter)}, set(grades))))
Output:
[{'f': 1}, {'b': 4}, {'c': 2}, {'d': 2}, {'a': 4}]
For your expected output:
grades = ['b', 'b', 'f', 'c', 'b', 'a', 'a', 'd', 'c', 'd', 'a', 'a', 'b']
occurrence = map(lambda letter: (letter, grades.count(letter)), set(grades))
for item in occurrence:
print(f"{item[0]}={item[1]}")
Output:
c=2
b=4
d=2
f=1
a=4
Update
You can use defaultdict()
to count the occurrence of each element:
from collections import defaultdict
grades = ['b', 'b', 'f', 'c', 'b', 'a', 'a', 'd', 'c', 'd', 'a', 'a', 'b']
occurrence = defaultdict(lambda: 0)
for character in grades:
occurrence[character] += 1
for key, value in occurrence.items():
print(f"{key}={value}")
Output:
b=4
f=1
c=2
a=4
d=2