帮我写一段python代码,需要对输入的文本进行删除重复,同时提取相应重复次数,最后可以选择按次数数量排序或者按文本名称排序
时间: 2024-02-28 16:53:02 浏览: 90
python 实现删除排序数组中的重复项
好的,以下是一个可以实现你要求功能的 Python 代码:
```python
from collections import Counter
# 获取输入文本列表
texts = input("请输入文本,用空格分隔:").split()
# 统计每个文本出现的次数
text_counts = Counter(texts)
# 删除重复的文本
unique_texts = list(set(texts))
# 按次数排序或者按文本名称排序
sort_by = input("请选择排序方式(1.按次数 2.按名称):")
if sort_by == "1":
sorted_texts = sorted(unique_texts, key=lambda x: text_counts[x], reverse=True)
else:
sorted_texts = sorted(unique_texts)
# 输出结果
for text in sorted_texts:
count = text_counts[text]
print(text, count)
```
代码解释:
1. 首先通过 `input` 函数获取输入的文本列表,使用 `split` 方法将字符串按空格分隔成列表。
2. 使用 `Counter` 函数统计每个文本出现的次数,得到一个字典 `text_counts`。
3. 将文本列表转换成集合,再转换回列表,即可得到不含重复的文本列表 `unique_texts`。
4. 根据用户选择的排序方式,使用 `sorted` 函数对不含重复的文本列表排序,排序时需要根据每个文本出现的次数或者文本名称进行排序。
5. 最后遍历排序后的文本列表,输出每个文本及其出现的次数。
你可以根据自己的需要修改代码,比如修改输入方式、输出方式等。
阅读全文