我正在编写一小段代码来练习学习python。注意,我现在不担心错误处理,而只是功能块。
用户输入字母数字字符串,输出以显示输入中每个字符的计数
input = "poop"
desired output = p:2, o:2
current output = p:1, o:1
我已将所有内容写成直方图和for循环来收集每个字符的计数,但是当我的for循环运行时,我只会返回1的计数。有人可以帮助我说明为什么字符不正确吗?计数不止一次吗?
我的代码在下面。
s = input("Enter alphanumeric: ")
print(s)
l = []
for char in s:
l.append(char)
print(l)
letter_histogram = dict.fromkeys(l,0)
print(letter_histogram)
for char in letter_histogram:
letter_histogram[char] = letter_histogram[char] + 1
print(letter_histogram)
您应该遍历用户输入,而不是字典
for char in s:
letter_histogram[char] += 1
更好地使用此方法,它更具可读性,您可以使用set
对唯一字符进行分组,然后使用.count
字符串方法查找出现的次数,例如:
sample = "poop"
letters = set(sample)
histogram = {
letter: sample.count(letter) for letter in letters
}
print(histogram)
>>> {'p': 2, 'o': 2}