计算Python中字符串字母的出现

时间:2018-10-30 11:23:08

标签: python count

包含大写和小写字母的字符串。

我们需要计算每个字母(不区分大小写)的出现次数并显示相同的数字。

下面是程序,但没有导致期望的输出

输出应为- 2A 3B 2C 1G

我的输出是- A2 B 3 A2 B 3 C 2 B 3 1号 C 2

String="ABaBCbGc"
String1=String.upper()
for i in String1:
    print(i,String1.count(i))

3 个答案:

答案 0 :(得分:4)

使用Counter

from collections import Counter

String = "ABaBCbGc"

counts = Counter(String.lower())

print(counts)

输出

Counter({'b': 3, 'c': 2, 'a': 2, 'g': 1})

如果您希望使用大写字母,只需将str.lower更改为str.upper。或使用字典来跟踪计数:

string = "ABaBCbGc"
counts = {}
for c in string.upper():
    counts[c] = counts.get(c, 0) + 1

print(counts)

输出

{'C': 2, 'B': 3, 'A': 2, 'G': 1}

答案 1 :(得分:1)

打印将以空格分隔args。将它们与+连接。 count()是一个整数,因此需要将其转换为字符串。

String="ABaBCbGc"
counts = {}
String1=String.upper()
for i in String1:
    counts[i] = String1.count(i)

for k in counts.keys():
    print(str(counts[k]) + k)

2A
3B
2C
1G

答案 2 :(得分:0)

创建排序的输入字符串作为值,并创建此字符串的排序键作为键。迭代键并计算其出现的次数。

data = "ABaBCbGc".upper()
values = ''.join(sorted(data))
keys = sorted(''.join(set(data)))
for key in keys:
    print(str(values.count(key))+key)

输出:

2A
3B
2C
1G