python - 如何获取列表中重复字母的次数
问题描述
我有一个场景,我想打印字母在 lst 中重复的次数
my_lst =['AVBXXX' , 'GAHJJKSL' ]
我的输出应该如下所示:
列表 : AVBXXX
A - 1
V - 1
B - 1
X - 3
列表 : GAHJJKSL
G - 1
A - 1
H - 1
J - 2
K - 1
S - 1
L - 1
我的代码:
getlen=len(lst)
lettercnt=0
for i in range(lst):
v=lst[i]
print("List :",v)
for j in str(v):
if j =='A'
lettercnt+=1
elif j =='V'
lettercnt+=1
elif j =='B'
lettercnt+=1
elif j =='X'
lettercnt+=1
else:
pass
解决方案
尝试这个:
from collections import Counter
my_lst =['AVBXXX' , 'GAHJJKSL' ]
{l : Counter(l) for l in my_lst}
输出:
{'AVBXXX': Counter({'A': 1, 'V': 1, 'B': 1, 'X': 3}),
'GAHJJKSL': Counter({'G': 1, 'A': 1, 'H': 1, 'J': 2, 'K': 1, 'S': 1, 'L': 1})}
如果您想获得所需的确切输出,请尝试以下操作:
dct = {l : Counter(l) for l in my_lst}
for k,v in dct.items():
print(f'lits:{k}')
for i,j in v.items():
print(f'{i}:{j}')
输出:
lits:AVBXXX
A:1
V:1
B:1
X:3
lits:GAHJJKSL
G:1
A:1
H:1
J:2
K:1
S:1
L:1