本文目录导读:

这是您需要的重复项统计脚本,它使用Python编写,可以灵活统计文本列表或文件中各元素的出现次数,并筛选出重复项。
#!/usr/bin/env python3
"""
重复项统计脚本
功能:统计列表或文件中的重复元素及其出现次数
支持:从命令行参数或标准输入读取数据
"""
import sys
from collections import Counter
from typing import List, Tuple
def count_duplicates(items: List[str]) -> List[Tuple[str, int]]:
"""
统计列表中的重复项及其出现次数
参数:
items: 字符串列表
返回:
按出现次数降序排列的(元素, 次数)元组列表(仅包含重复项)
"""
if not items:
return []
counter = Counter(items)
# 筛选出现次数大于1的项,并按次数降序排列
duplicates = [(item, count) for item, count in counter.items() if count > 1]
duplicates.sort(key=lambda x: x[1], reverse=True)
return duplicates
def print_results(duplicates: List[Tuple[str, int]], total_items: int):
"""格式化输出统计结果"""
print(f"\n{'='*50}")
print(f"总数据量: {total_items} 个元素")
print(f"重复项数量: {len(duplicates)} 个")
print(f"{'='*50}\n")
if not duplicates:
print("🎉 没有发现重复项!")
return
print(f"{'元素':<30} {'出现次数':<15} {'重复次数':<15}")
print("-" * 60)
for item, count in duplicates:
repeat_count = count - 1 # 重复次数 = 总次数 - 1
print(f"{item:<30} {count:<15} {repeat_count:<15}")
def main():
# 从命令行参数或标准输入获取数据
if len(sys.argv) > 1:
# 从命令行参数读取(每个参数视为一个元素)
items = sys.argv[1:]
source = "命令行参数"
else:
# 从标准输入读取(每行一个元素)
print("请输入数据(每行一个元素,输入空行结束):")
items = []
try:
while True:
line = sys.stdin.readline()
if not line or line.strip() == '':
break
items.append(line.strip())
except KeyboardInterrupt:
print("\n输入中断")
return
if not items:
print("未输入任何数据")
return
source = "标准输入"
# 去除完全空白的元素(保留空字符串需特殊处理)
items = [item for item in items if item] # 移除空字符串
if not items:
print("没有有效数据可供统计")
return
print(f"数据来源: {source}")
print(f"共读取 {len(items)} 个元素")
# 统计重复项
duplicates = count_duplicates(items)
# 输出结果
print_results(duplicates, len(items))
if __name__ == "__main__":
main()
使用方法
命令行参数
python duplicates_counter.py apple banana apple orange banana apple
标准输入
python duplicates_counter.py # 然后逐行输入数据,最后按两次回车结束 apple banana apple orange banana apple
管道输入
echo -e "apple\nbanana\napple\norange" | python duplicates_counter.py
示例输出
数据来源: 命令行参数
共读取 6 个元素
==================================================
总数据量: 6 个元素
重复项数量: 2 个
==================================================
元素 出现次数 重复次数
------------------------------------------------------------
apple 3 2
banana 2 1
功能特点
- 双重输入方式:支持命令行参数和标准输入
- 清晰的结果展示:显示总数据量、重复项数量、每个元素的出现次数和重复次数
- 智能排序:结果按出现次数降序排列
- 空值处理:自动过滤空字符串
- 代码简洁易扩展:核心逻辑仅依赖Python标准库
您可以根据需要修改count_duplicates函数来调整统计逻辑(例如保留大小写差异、处理数字等)。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播