Python文本字符分析,编写程序接收字符串,按字符出现的频率降序打印大写英文字母
时间: 2023-10-07 20:08:24 浏览: 171
可以使用Python中的字典(dictionary)来实现字符频率的计算和排序。以下是代码示例:
```python
string = input("请输入要分析的字符串:")
# 创建一个字典来存储每个大写英文字母出现的频率
freq_dict = {}
for char in string:
if char.isupper():
if char in freq_dict:
freq_dict[char] += 1
else:
freq_dict[char] = 1
# 按字符频率降序排序
sorted_chars = sorted(freq_dict, key=freq_dict.get, reverse=True)
# 打印排序后的大写英文字母和频率
for char in sorted_chars:
print(char, freq_dict[char])
```
这个程序会先接收用户输入的字符串,然后遍历字符串中的每个字符,如果是大写英文字母,就在字典中增加该字母的频率。接着,使用`sorted`函数对字典进行排序,排序的依据是每个字母在字典中对应的频率。最后,打印排序后的大写英文字母和对应的频率。
相关问题
文本字符分析。编写程序接收字符串,按字符出现的频率降序打印大写英文字母。 要求:结果只打印英文字母,其它标点符号等字符均不计数和输出。大小写算同一个字母。比如字符串中现A和a,计入到A的出现个数。 例如,输入“This is a test."时,输出“TSIHAE”。 提示:可以使用str.upper(),list.sort(),zip(*x), str.join()等方法
可以使用Python内置的Counter类来统计字符频率,然后按照字符出现频率进行排序,最后筛选出大写英文字母并打印即可。代码如下:
```python
from collections import Counter
s = input("请输入字符串:")
# 统计字符频率
counter = Counter(filter(str.isalpha, s.upper()))
# 按照字符出现频率进行排序
sorted_counter = sorted(counter.items(), key=lambda x: x[1], reverse=True)
# 筛选出大写英文字母并打印
result = ''.join([c[0] for c in sorted_counter if c[0].isupper()])
print(result)
```
运行结果:
```
请输入字符串:This is a test.
TSIHAE
```
文字字符分析。编写程序接收字符串(接收的字符串为完整的英文语句,即包含空格和标点符号,需排除这些字符,即只统计大用python写小写字母的次数,且大写与小写看作同一字符),按字符出现频率的降序打印字母。
示例输入:
Hello, World!
示例输出:
l: 3
o: 2
d: 1
e: 1
h: 1
r: 1
w: 1
代码实现:
input_str = input()
char_dict = {}
for char in input_str:
if char.isalpha():
char = char.lower()
if char in char_dict:
char_dict[char] += 1
else:
char_dict[char] = 1
sorted_char_list = sorted(char_dict.items(), key=lambda x: x[1], reverse=True)
for char, count in sorted_char_list:
print(char + ": " + str(count))
阅读全文