输入一个字符串,统计各字母出现的次数,并按字母出现的多少输出(先输出字母出现多的,次数相同的按字母表顺序输出,不出现的字母不输出)。
时间: 2023-04-26 11:03:23 浏览: 147
从键盘上输入一串英文字符(不含空格与其他字符),统计每个字符的数目,并输出字母及相应的数目。
可以使用一个字典来记录每个字母出现的次数,然后按照出现次数从大到小排序,次数相同的按照字母表顺序排序,最后输出即可。
具体实现步骤如下:
1. 定义一个空字典,用于记录每个字母出现的次数。
2. 遍历输入的字符串,对于每个字符,如果它是字母,则在字典中增加对应的计数器;否则忽略。
3. 对字典按照值从大到小排序,如果值相同则按照键的字母表顺序排序。
4. 遍历排序后的字典,输出每个字母和对应的计数器。
下面是一个示例代码:
```python
s = input("请输入一个字符串:")
counter = {}
for c in s:
if c.isalpha():
c = c.lower()
counter[c] = counter.get(c, 0) + 1
sorted_counter = sorted(counter.items(), key=lambda x: (-x[1], x[0]))
for item in sorted_counter:
print(item[0], item[1])
```
这个代码中,我们使用了 `isalpha()` 方法来判断一个字符是否是字母,使用 `lower()` 方法将所有字母转换为小写,使用 `get()` 方法获取字典中对应键的值,如果键不存在则返回默认值 0。
`sorted()` 函数可以对字典按照指定的排序规则进行排序,这里我们使用了一个 lambda 表达式来指定排序规则,先按照值从大到小排序,如果值相同则按照键的字母表顺序排序。
最后遍历排序后的字典,输出每个字母和对应的计数器即可。
阅读全文