按 Python 中的部分字符串计数

Counting by partial string in Python

所以,我有一个字符串列表(大写字母)。

list = ['DOG01', 'CAT02',  'HORSE04',  'DOG02',  'HORSE01', 'CAT01', 'CAT03',  'HORSE03',  'HORSE02']

如何对列表中的出现次数进行分组和计数?
预期输出:

您可以在此处尝试使用 Counter 库:

from collections import Counter
import re

list = ['DOG01', 'CAT02', 'HORSE04', 'DOG02', 'HORSE01', 'CAT01', 'CAT03', 'HORSE03', 'HORSE02']
list = [re.sub(r'\d+$', '', x) for x in list]
print(Counter(list))

这会打印:

Counter({'HORSE': 4, 'CAT': 3, 'DOG': 2})

请注意,上述方法只是去除了每个列表元素的数字结尾,然后仅对字母名称进行聚合。

你也可以使用字典

list= ['DOG01', 'CAT02',  'HORSE04',  'DOG02',  'HORSE01', 
      'CAT01', 'CAT03',  'HORSE03',  'HORSE02']
dic={}
for i in list:
    i=i[:-2]
    if i in dic:
        dic[i]=dic[i]+1
    else:
        dic[i]=1
print(dic)