从屏幕输入一段英文文字,统计其中出现的英文单词及其出现次数。(字典)
时间: 2023-05-20 18:04:01 浏览: 101
好的,以下是我的回答:
您可以使用 Python 编程语言来实现这个功能。首先,您需要将输入的英文文字转换为小写字母,以便统计单词时不会区分大小写。然后,您可以使用 split() 函数将文本分割成单词列表。最后,您可以使用 Python 的字典数据结构来统计每个单词出现的次数。以下是示例代码:
```
text = input("请输入英文文字:").lower()
words = text.split()
word_count = {}
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
print("单词\t出现次数")
for word, count in word_count.items():
print(f"{word}\t{count}")
```
您可以将上述代码复制到 Python 解释器中运行,然后输入一段英文文字,程序将输出每个单词及其出现次数。希望这可以帮助您解决问题!
相关问题
从屏幕输入一段英文文字,统计其中出现的英文单词及其出现次数。(字典)要求程序可以过滤掉常见的标点符号,并按下面要求输出: (1)将出现次数大于2的单词按字典序输出并输出其出现次数。 (2)将出现次数大于2的单词按单词出现次数从大到小的排序输出,并输出其出现次数。
由于本题需要使用字典来统计单词出现次数,因此我们可以使用 Python 中的 defaultdict 类来实现。具体步骤如下:
1. 从屏幕输入一段英文文字,并将其中的标点符号过滤掉。这可以通过使用 string 模块中的 punctuation 常量来实现。
2. 将过滤后的文本按空格分割成单词列表。
3. 遍历单词列表,对每个单词进行统计。统计时需要注意将单词转换为小写,以避免大小写造成的重复计数。
4. 将统计结果按字典序和出现次数排序,并输出。
下面是代码实现:
```python
import string
from collections import defaultdict
text = input('请输入一段英文文字:')
# 过滤标点符号
for punctuation in string.punctuation:
text = text.replace(punctuation, ' ')
# 分割单词
words = text.split()
# 统计单词出现次数
word_count = defaultdict(int)
for word in words:
word_count[word.lower()] += 1
# 按字典序排序并输出出现次数大于2的单词
for word in sorted(filter(lambda x: word_count[x] > 2, word_count)):
print(word, word_count[word])
# 按出现次数排序并输出出现次数大于2的单词
for word in sorted(word_count, key=lambda x: (-word_count[x], x)):
if word_count[word] > 2:
print(word, word_count[word])
```
这里使用了 lambda 表达式来过滤出现次数大于2的单词,并对出现次数进行降序排序。由于 Python 中的排序默认是升序,因此可以通过对出现次数取负来实现降序排序。
从屏幕输入一段英文文字,统计其中出现的英文单词及其出现次数。(字典) 要求程序可以过滤掉常见的标点符号,并按下面要求输出: (1)将出现次数大于2的单词按字典序输出并输出其出现次数。 (2)将出现次数大于2的单词按单词出现次数从大到小的排序输出,并输出其出现次数。
我可以回答这个问题。以下是代码:
```python
import re
from collections import Counter
def count_words(text):
# 将文本中的标点符号替换为空格
text = re.sub(r'[^\w\s]', ' ', text)
# 将文本中的单词转换为小写
words = text.lower().split()
# 统计单词出现次数
word_counts = Counter(words)
# 输出出现次数大于2的单词及其出现次数
print("按字典序输出:")
for word, count in sorted(word_counts.items()):
if count > 2:
print(f"{word}: {count}")
# 输出出现次数大于2的单词按出现次数从大到小排序及其出现次数
print("按出现次数从大到小排序输出:")
for word, count in sorted(word_counts.items(), key=lambda x: x[1], reverse=True):
if count > 2:
print(f"{word}: {count}")
# 测试代码
text = input("请输入一段英文文字:")
count_words(text)
```
输入一段英文文字后,程序会输出按字典序排序的出现次数大于2的单词及其出现次数,以及按出现次数从大到小排序的出现次数大于2的单词及其出现次数。
阅读全文