Skip to main content
 首页 » 编程设计

Python之如何计算字符数,但只打印一次

2025年05月04日21飞鱼

我正在尝试找出我的代码。该代码的目的是创建一个字符频率计数器。字符频率计数器必须按字母顺序显示结果。因此,代码必须接受输入并显示字符数,如下所示:

输入=(“苹果”) '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 
>