包含大写和小写字母的字符串。
我们需要计算每个字母(不区分大小写)的出现次数并显示相同的数字。
下面是程序,但没有导致期望的输出
输出应为- 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))
答案 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