python单词统计并按顺序打印。输入一些英文单词,统计每个单词出现的次数(大小写,如‘At’和‘at’算不同的单词),并按次数从多到少打印结果,如果次数一样就按单词的字典顺序打印(大写先于小写)。
时间: 2024-03-11 20:46:36 浏览: 115
好的,这是一个很好的问题,以下是 Python 代码实现:
```
words = input().split() # 读入英文单词,以空格分隔
word_count = {} # 定义一个空字典,用于存储每个单词的出现次数
# 统计每个单词出现的次数
for word in words:
if word not in word_count:
word_count[word] = 1
else:
word_count[word] += 1
# 按照出现次数从多到少排序,如果次数一样就按字典序排序
sorted_words = sorted(word_count.items(), key=lambda x: (-x[1], x[0]))
# 打印结果
for word, count in sorted_words:
print(word, count)
```
我们首先读入英文单词,并将其以空格分隔后存储在列表 `words` 中。然后,我们定义一个空字典 `word_count`,用于存储每个单词出现的次数。
接着,我们遍历 `words` 列表,对于每个单词,如果它不在 `word_count` 字典中,我们就将其加入字典,并将出现次数设为 1;否则,我们将其出现次数加 1。
然后,我们使用 Python 的 `sorted()` 函数对字典 `word_count` 中的键值对进行排序。我们使用 `key` 参数指定排序规则,其中 `lambda x: (-x[1], x[0])` 表示先按值(即出现次数)从大到小排序,如果值相同则按键(即单词)的字典序从小到大排序。注意,我们在值前面加了一个负号,表示按值从大到小排序。
最后,我们遍历排序后的键值对,并打印每个单词及其出现次数。
阅读全文