输入一段英文(标点符号只有叹号,问号,句号,逗号),找出所有单词,去除重复单词后(不区分大小写,如And和and是同一单词),按字典序排序输出所有单词。 提示:1)使用字符串的lower()方法将输入字符串全部转换为小写; 2)使用字符串的replace()方法把标点符号替换成空格,再使用split()切分单词 输入:一段英文 输出:每行一个单词 输入样例: The shortest way to do many things is to only one thing at a time. 输出样例: a at do is many one only shortest the thing things time to way
时间: 2024-02-27 15:53:23 浏览: 86
以下是 Python 的实现代码:
```python
s = input().lower()
for c in ",.?!":
s = s.replace(c, " ")
words = set(s.split())
for word in sorted(words):
print(word)
```
解释:
1. 将输入字符串全部转换为小写:`input().lower()`
2. 把标点符号替换成空格:遍历标点符号字符串,使用 replace() 方法逐个替换:`for c in ",.?!": s = s.replace(c, " ")`
3. 使用 split() 方法切分单词,并转换成集合去重:`words = set(s.split())`
4. 按字典序排序后输出单词:`for word in sorted(words): print(word)`
相关问题
打开一个内容为一篇英文文章的文本文件,假设文章中的标点只有句号、逗号、叹号 和问号,统计其中单词的出现频率,忽略大小写。输出文章中出现频率最高的5个单词及 出现次数。
好的,这个问题可以通过编写一个简单的 Python 脚本来解决。以下是示例代码:
```python
import re
# 打开文本文件,读取内容
with open('article.txt', 'r') as file:
text = file.read()
# 将文本中所有非字母字符替换为空格,并将文本转换为小写
text = re.sub(r'[^a-zA-Z\s]', ' ', text)
text = text.lower()
# 将文本分割为单词列表
words = text.split()
# 计算每个单词出现的次数
word_counts = {}
for word in words:
if word in word_counts:
word_counts[word] += 1
else:
word_counts[word] = 1
# 输出出现频率最高的5个单词及出现次数
top_words = sorted(word_counts, key=word_counts.get, reverse=True)[:5]
for word in top_words:
print(word, word_counts[word])
```
这个脚本的思路是首先读取文本文件中的内容,然后将所有非字母字符替换为空格,并将文本转换为小写。接着将文本分割为单词列表,遍历列表并统计每个单词出现的次数。最后,输出出现频率最高的5个单词及它们的出现次数。
注意,这个脚本只考虑了文章中的英文单词,如果需要处理其他语言或标点符号,需要修改正则表达式的模式。
打开一个内容为一篇英文文章的文本文件,假设文章中的标点只有句号、逗号、叹号和问号,统计其中单词的出现频率,忽略大小写。输出文章中出现频率最高的5个单词及出现次数。
好的,我会为您提供一个 Python 代码来实现这个功能。
首先,我们需要读取文本文件中的内容,并将其中的标点符号替换为空格,将每个单词分开。可以使用 Python 的 replace() 函数和 split() 函数实现。
接下来,我们可以定义一个空的字典,用于记录每个单词出现的次数。遍历每个单词,将其转换为小写,并将其作为字典的键,在字典中累加其出现的次数。
最后,我们可以使用 Python 的 Counter 类对字典中的元素按照出现次数进行排序,取出前5个出现频率最高的单词及其出现次数。
下面是实现这个功能的 Python 代码:
```
import re
from collections import Counter
filename = input("请输入文件名: ")
with open(filename, 'r') as f:
text = f.read()
text = re.sub(r'[,.!?]', ' ', text) # 将标点符号替换为空格
words = text.split() # 将每个单词分开
word_count = {}
for word in words:
word = word.lower() # 将单词转换为小写
if word not in word_count:
word_count[word] = 1
else:
word_count[word] += 1
top5_words = Counter(word_count).most_common(5)
print("出现频率最高的5个单词及出现次数:")
for word, count in top5_words:
print(word, count)
```
希望能够帮助到您!
阅读全文