当前位置: 首页 > news >正文

Python —— 真题九

问题1. 数据统计。要求:分别统计两个文件中出现次数最多的10词语,作为主题词,要求词语不少于2个字符,打印输出在屏幕上,输出示例如下:(示例词语非答案)

2019:改革:10,企业:9,...(略),深化:2

2018:改革:11,效益:7,...(略),深化:1

注意:输出格式采用英文冒号和英文逗号,标点符号前后无空格,各词语间用逗号分隔,最后一个词语后无逗号。

import jieba
f = open(r'C:\Users\Administrator\Desktop\data2019.txt','r')
lines = f.readlines()
d={}
for line in lines:for i in jieba.lcut(line):if len(i) >= 2:d[i] = d.get(i,0) + 1L = list(d.items())
L.sort(key=lambda x:x[1],reverse = True)
List = []
for k in range(10):List.append('{}:{}'.format(L[k][0],L[k][1]))
print('2019:'+','.join(List))f = open(r'C:\Users\Administrator\Desktop\data2018.txt','r')
lines = f.readlines()
d={}
for line in lines:for i in jieba.lcut(line):if len(i) >= 2:d[i] = d.get(i,0) + 1L = list(d.items())
L.sort(key=lambda x:x[1],reverse = True)
List = []
for k in range(10):List.append('{}:{}'.format(L[k][0],L[k][1]))
print('2018:'+','.join(List))

法二函数法

import jieba
def file(data):f = open(r'C:\Users\Administrator\Desktop\data{}.txt'.format(data),'r')lines = f.readlines()d={}for line in lines:for i in jieba.lcut(line):if len(i) >= 2:d[i] = d.get(i,0) + 1L = list(d.items())L.sort(key=lambda x:x[1],reverse = True)List = []for k in range(10):List.append('{}:{}'.format(L[k][0],L[k][1]))print('{}:'.format(data)+','.join(List))file(2019)
file(2018)

 法三

import jieba
def file(data):f = open(r'C:\Users\Administrator\Desktop\data{}.txt'.format(data),'r')lines = f.readlines()d={}for line in lines:for i in jieba.lcut(line):if len(i) >= 2:d[i] = d.get(i,0) + 1L = list(d.items())L.sort(key=lambda x:x[1],reverse = True)print(str(data)+':',end='')for k in range(10):if k<9:print('{}:{}'.format(L[k][0],L[k][1]),end=',')else:print('{}:{}'.format(L[k][0], L[k][1]))file(2019)
file(2018)

法四字符串切片

import jieba
def file(data):f = open(r'C:\Users\Administrator\Desktop\data{}.txt'.format(data),'r')lines = f.readlines()d={}for line in lines:for i in jieba.lcut(line):if len(i) >= 2:d[i] = d.get(i,0) + 1L = list(d.items())L.sort(key=lambda x:x[1],reverse = True)print(str(data)+':',end='')result=""for k in range(10):result += '{}:{}'.format(L[k][0],L[k][1]) + ','print(result[:-1])file(2019)
file(2018)

问题二. 数据关联。要求:对比两组主题词的差异,输出两组的共有词语分别的特有词语。输出示例如下:(示例词语非答案)

共有词语:改革,...(略),深化

2019特有:企业,...(略),加强

2019特有:效益,...(略),创新

注意:输出格式采用英文冒号和英文逗号,标点符号前后无空格,各词语间用逗号分隔,最后一个词语后无逗号。

import jieba
f = open(r'C:\Users\Administrator\Desktop\data2019.txt','r')
lines = f.readlines()
f.close()
d={}
for line in lines:for i in jieba.lcut(line):if len(i) >= 2:d[i] = d.get(i,0) + 1L = list(d.items())
L.sort(key=lambda x:x[1],reverse = True)
L_2019 = []
for k in range(10):L_2019.append(L[k][0])f = open(r'C:\Users\Administrator\Desktop\data2018.txt','r')
lines = f.readlines()
f.close()
d={}
for line in lines:for i in jieba.lcut(line):if len(i) >= 2:d[i] = d.get(i,0) + 1L = list(d.items())
L.sort(key=lambda x:x[1],reverse = True)
L_2018 = []
for k in range(10):L_2018.append(L[k][0])L_C = [] #共有词语
for m in L_2019:if m in L_2018:L_C.append(m)# 特有
for n in L_C:L_2019.remove(n)L_2018.remove(n)print('共有词语:'+','.join(L_C))
print('2019特有:{}'.format(','.join(L_2019)))
print('2018特有:{}'.format(','.join(L_2018)))

法二set集合

import jieba
f = open(r'C:\Users\Administrator\Desktop\data2019.txt','r')
lines = f.readlines()
f.close()
d={}
for line in lines:for i in jieba.lcut(line):if len(i) >= 2:d[i] = d.get(i,0) + 1L = list(d.items())
L.sort(key=lambda x:x[1],reverse = True)
L_2019 = []
for k in range(10):L_2019.append(L[k][0])f = open(r'C:\Users\Administrator\Desktop\data2018.txt','r')
lines = f.readlines()
f.close()
d={}
for line in lines:for i in jieba.lcut(line):if len(i) >= 2:d[i] = d.get(i,0) + 1L = list(d.items())
L.sort(key=lambda x:x[1],reverse = True)
L_2018 = []
for k in range(10):L_2018.append(L[k][0])print('共有词语:'+ ','.join(list(set(L_2019) & set(L_2018))))
print('2019特有:'+','.join(list(set(L_2019) - set(L_2018))))
print('2018特有:'+','.join(list(set(L_2018) - set(L_2019))))

http://www.dtcms.com/a/295876.html

相关文章:

  • web:js函数的prototype(原型对象)属性
  • RabbitMQ简述
  • 前端笔记:同源策略、跨域问题
  • 重绘(Repaint)与重排(Reflow)
  • 【ECharts✨】解决Vue 中 v-show 导致组件 ECharts 样式异常问题
  • 简单Proxy使用
  • 【Newman+Jenkins】实施接口自动化测试
  • Python 使用环境下编译 FFmpeg 及 PyAV 源码(英特尔篇)
  • AIRIOT智慧选煤厂管理解决方案
  • HTTP性能优化实战:从协议到工具的全面加速指南
  • 【unity游戏开发入门到精通——组件篇】unity的粒子系统力场 (Particle System Force Field)实现如旋风、吸引力、风吹效果等
  • OpenCV(03)插值方法,边缘填充,透视变换,水印制作,噪点消除
  • Python中浅拷贝和深拷贝的理解
  • 力扣 hot100 Day54
  • mvn dependency:tree 使用详解?
  • Leetcode 07 java
  • 赋能决策与创新的数据引擎:数据分析平台的价值与未来
  • b-up:Enzo_mi:Transformer DETR系列
  • 10_Spring Boot 中的 @Scheduled 注解是单线程还是多线程?同步还是异步?
  • 基于深度学习的肺癌肿瘤细胞图像识别与分类系统
  • 技术赋能多元探索:我的技术成长与行业洞察
  • 解决 WSL 中无法访问 registry-1.docker.io/v2/,无法用 docker 拉取 image
  • 新能源电池厂自动化应用:Modbus TCP转DeviceNet实践
  • IDM下载失败全面排查指南
  • 医疗设备自动化升级:Modbus TCP与DeviceNet的协议协同实践
  • DPO:大语言模型偏好学习的高效方案
  • Python 程序设计讲义(15):Python 的数据运算——位运算
  • Opentrons 模块化平台与AI技术助力智能移液创新,赋能AAW™自动化工作站
  • 深入探索Amazon SQS:构建弹性微服务与无服务器应用的秘密武器
  • 如何在Ubuntu系统下创建桌面快捷方式