基本上我必须编写一个程序来计算每个字母出现在字符串中的时间。例如,我得到了它,但字母重复。如果字符串是hello,它将输出:
当我需要输出时:
到目前为止我完成它的方式是没有导入任何东西,我的代码看起来像:
input_text = input('Enter some text: ')
s = input_text.lower()
length_s = len(s)
l = 0
while length_s > 0:
if s[l].isalpha():
print(s[l], s.count(s[l]))
l += 1
length_s -=1
else:
l += 1
length_s -=1
答案 0 :(得分:5)
您可以使用collections.Counter
作为用例,它是用于计算可哈希对象的dict子类(例如 - 字符串中的字符)。示例 -
>>> from collections import Counter
>>> c = Counter('hello')
>>> c
Counter({'l': 2, 'h': 1, 'o': 1, 'e': 1})
>>> for i,x in c.items():
... print('{} - {}'.format(i,x))
...
l - 2
h - 1
o - 1
e - 1
不使用导入,您可以使用set()
存储已经看过的字符。 (这样做是为了维持订单) -
input_text = input('Enter some text: ')
s = input_text.lower()
seen = set()
for c in s:
if c not in seen:
print(c, s.count(c))
seen.add(c)
答案 1 :(得分:2)
如果您不想导入任何内容,可以执行以下操作来获取字典:
s = input_text.lower()
countDict = {}
for char in s:
if (char not in countDict):
countDict[char] = 1
else:
countDict[char] += 1