首页 > 解决方案 > 如何获取列表中重复字母的次数

问题描述

我有一个场景,我想打印字母在 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 

标签: python

解决方案


尝试这个:

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

推荐阅读