字母数字的重复字符计数器

Duplicate Character Counter for an Alphanumeric

我正在写一小段代码练习学习python。请注意,我现在不担心错误处理,只担心功能部分。

用户输入字母数字字符串,输出以显示输入中每个字符的计数

 input = "poop"
 desired output = p:2, o:2
 current output = p:1, o:1

我已经编写了直方图和 for 循环来收集每个字符的计数,但是当我的 for 循环运行时,我只 return 计数 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}