[英]Count each occurrence of alphabet and store it in a list in Python 3
[英]How to count occurrence of alphabet in python?
我编写了一个自定义 python 代码来计算某个字母表之后出现的字母表。 例如,就我而言,我有一个字符串“ABACCD”。 现在我想找到从字母“A”开始,在我的字符串中,它后面跟着“B”多少次,后面跟着“C”多少次等等。对于“B”也是如此,有多少后面跟“A”的时间,跟“B”的次数,跟“C”的次数。 因此,output 将类似于:如果我的字母表是“A”,则后面跟着“A”零次,后面跟着“B”1 次,后面跟着“C”1 次,后面跟着“D” “0次。 我编写的代码只返回一个 1 列表。 这是我的代码:
s = "ABACCD"
a = []
for i in s:
if(i=="A"):
for j in s:
a_count = 0
if(j=="A"):
a_count+=1
a.append(a_count)
print(a)
任何帮助将非常感激。 谢谢
最好使用字典而不是列表来跟踪所有出现的字母对
1.基本Python使用字典
cnts = {}
for a, b in zip(s, s[1:]):
cnts[(a,b)] = cnts.get((a, b), 0) + 1
print(cnts) # {('A', 'B'): 1, ('B', 'A'): 1, ('A', 'C'): 1, ('C', 'C'): 1, ('C', 'D'): 1}
2.基本Python没有zip
cnts = {}
i = 0
while i < len(s) - 1:
a = s[i]
b = s[i+1]
cnts[(a,b)] = cnts.get((a, b), 0) + 1
i += 1
print(cnts)
#{('A', 'B'): 1, ('B', 'A'): 1, ('A', 'C'): 1, ('C', 'C'): 1, ('C', 'D'): 1}
3.使用collections.Counter的解决方案
from collections import Counter
cnts = Counter(zip(s, s[1:]))
print(cnts)
#Counter({('A', 'B'): 1,
('B', 'A'): 1,
('A', 'C'): 1,
('C', 'C'): 1,
('C', 'D'): 1})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.