按 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)
所以,我有一个字符串列表(大写字母)。
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)