我正在尝试找出我的代码。该代码的目的是创建一个字符频率计数器。字符频率计数器必须按字母顺序显示结果。因此,代码必须接受输入并显示字符数,如下所示:
输入=(“苹果”) 'a' = 1
'e' = 1
'l' = 1
'p' = 2
目前,我的代码是这样做的:
'a' = 1
'e' = 1
'l' = 1
'p' = 2
'p' = 2
有解决这个问题的想法吗?理想情况下,我只希望“p”显示一次,但计算两个字符。
这是我的代码:
char_dict = {}
user_input = input("Please enter a word or sentence: ")
user_input = user_input.replace(" ", "")
user_input = user_input.lower()
test_list = list(user_input)
test_list.sort()
for character in user_input:
char_dict[character] = 0
for character in user_input:
char_dict[character] = char_dict[character] + 1
for character in test_list:
print (character, ":", char_dict[character])
非常感谢任何帮助。非常感谢!
请您参考如下方法:
你有所有正确的部分和部分,但问题实际上比你做的要简单:
user_input = input("Please enter a word or sentence: ")
user_input = user_input.replace(" ", "")
user_input = user_input.lower()
char_dict = {}
for character in user_input:
char_dict[character] = char_dict.get(character, 0) + 1
for character in sorted(char_dict):
print(character, ":", char_dict[character])
输出
> python3 test.py
Please enter a word or sentence: apple
a : 1
e : 1
l : 1
p : 2
>
