# 【问题描述】
# 从文件in.txt读取信息,文件里的单词中间由空格隔开
# 统计每个单词出现的次数,从大到小排序后输出到文件out.txt
# 【输入形式】
# 文件里存储了多个单词,有重复,空格隔开
# 【输出形式】
# 从大到小输出单词及其出现的次数,次数一样的单词按字符串比较从小到大排序
# 【输入样例】in.txt文件里面的数据如下所示:
# hello world python hello word file number file file
# 【输出样例】out.txt文件里面的数据如下所示:
# file 3
# hello 2
# number 1
# python 1
# word 1
# world 1
# text1 = open("in.txt","w")
# text1.write("hello world python hello word file number file file")
# text1.close
# text1 = open("in.txt","r")
# line = text1.readline()
# # print(line)
# listline = list(line.split())
# #
# print(listline)
# setlistline = set(listline)
# numberlistline = {}
# for i in setlistline:
# numberlistline[i] = listline.count(i)
# # print(numberlistline)
# listnumberlistline = []
# for k,v in numberlistline.items(): #循环中的序列解包
# listnumberlistline.append([k,v])
# # print(listnumberlistline)
# # 按购买金额降序
# for i in range(len(listnumberlistline)-1 ,0 ,-1):
# for j in range(0,i):
# if listnumberlistline[j][1] < listnumberlistline[j+1][1]:
# listnumberlistline[j],listnumberlistline[j+1] = listnumberlistline[j+1],listnumberlistline[j]
# # print(listnumberlistline)
# # 按购买次数降序
# for i in range(len(listnumberlistline)-1 ,0 ,-1):
# for j in range(0,i):
# if listnumberlistline[j][1] == listnumberlistline[j+1][1]:
# if listnumberlistline[j][0] > listnumberlistline[j+1][0]:
# listnumberlistline[j],listnumberlistline[j+1] = listnumberlistline[j+1],listnumberlistline[j]
# # print(listnumberlistline)
# text2 = open("out.txt","w")
# for i in range(len(listnumberlistline)-1):
# text2.write(str(listnumberlistline[i][0])+' '+str(listnumberlistline[i][1])+'\n')
# text2.write(str(listnumberlistline[len(listnumberlistline)-1][0])+' '+str(listnumberlistline[len(listnumberlistline)-1][1]))
# text2.close
# text2 = open('out.txt','r')
# a = text2.read()
# print(a)
# text2.close
import operator
from os import close
filename = "in.txt"
filenameout = open("out.txt","w")
fp = open(filename,"r")
content = fp.read()
fp.close()
a = content.split()
b = set(a)
c = []
for i in b:
c.append([i,a.count(i)])
c.sort(key=operator.itemgetter(0))
c.sort(key=operator.itemgetter(1),reverse=True)
for i in c:
print(i[0],i[1],file = filenameout)
filenameout.close()
print(c)
Python题库答案.zip
需积分: 0 93 浏览量
更新于2023-05-16
收藏 57KB ZIP 举报
Python是一种广泛应用于数据分析、Web开发、自动化脚本和人工智能等领域的高级编程语言。这个名为"Python题库答案.zip"的压缩文件包含了一系列Python编程练习题的解决方案,涵盖了多个主题,如文件操作、字符串验证、算法实现和数据加密等。下面我们将逐一探讨这些知识点。
"题库:读写文件统计数据(字典-4).py"涉及到的是Python中的文件操作和字典数据结构。在Python中,我们可以使用内置的open()函数打开文件,然后使用read()或write()方法读取或写入文件内容。字典是Python中一种高效的数据结构,它存储键值对,便于我们统计和分析数据。
"题库:身份证验证.py"可能涉及了身份证号码的验证。这通常包括检查身份证号码的格式,如长度、校验码计算等。这需要对字符串处理和正则表达式有一定的理解,以及对中国身份证号码规则的了解。
"题库:前n个回文素数.py"涵盖了两个主题:回文数和素数。回文数是指正读反读都一样的数字,例如121。素数是只有1和自身两个正因数的自然数,如2, 3, 5等。要找出前n个回文素数,需要结合回文判断和素数检测的算法,如埃拉托斯特尼筛法。
"设计一个股票类 -《Python编程基础及应用》习题9-6.py"可能要求创建一个股票类,包含属性如股票代码、价格和交易日期,以及相应的类方法,如获取当前价格、计算涨跌幅等。这体现了面向对象编程的概念,包括类的定义、属性和方法的使用。
"题库:用递归函数实现归并排序.py"和"题库:用递归函数实现插入排序.py"涉及到两种不同的排序算法。归并排序是基于分治策略的排序算法,将大问题分解为小问题解决,然后合并结果。插入排序则是一种简单直观的排序算法,通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
"题库:任务调度(穷举求解) .py"可能是一个优化问题,通过穷举所有可能的解决方案来找到最佳的调度策略。这可能涉及搜索算法,如深度优先搜索或广度优先搜索。
"题库:长度大于5的单连牌 .py"题目不甚明了,但根据名称猜测可能与游戏或图形理论相关,可能需要处理一些连接关系或查找满足特定条件的连续序列。
"题库:找学生.py"可能涉及到数据搜索或过滤,这可能需要使用列表推导式或条件循环来实现。
"题库:加密数据.py"最后提到了数据加密,这可能涉及Python的加密库,如cryptography或PyCrypto,用于实现数据的安全传输和存储。
这个Python题库涵盖的知识点丰富多样,包括但不限于文件操作、数据结构(字典)、字符串处理、算法(排序、回文判断、素数检测)、面向对象编程、搜索算法、数据加密等,这些都是Python编程中非常重要的基础知识。通过这些练习,学习者可以提高Python编程技能,深入理解核心概念,并能解决实际问题。