概述
文件字符分布
问题描述:
统计附件文件的小写字母a-z的字符分布,即出现a-z字符的数量,并输出结果。
同时请输出文件一共包含的字符数量。
注意输出格式,各元素之间用英文逗号(,)分隔。
答案可能包含a-z共26个字符的分布,如果某个字符没有出现,则不显示,输出顺序a-z顺序。
自己写的程序:
txt = open("latex.log","r",encoding='utf-8').read()
counts={}
s=0
for letter in txt:
if 97 <= ord(letter) <= 122:
counts[letter] = counts.get(letter,0)+1
s+=1
items = list(counts.items())
items.sort(key=lambda x:x[0], reverse=False)
str1 = ""
for i in range(len(items)):
str1+=str(items[i][0])+":"+str(items[i][1])+","
str1=str1.strip(",")
print("共{0}字符,{1}".format(s,str1))
参考别人写的优化过:
txt = open("latex.log","r",encoding='utf-8').read()
counts={}
s=0
for letter in txt:
if 97 <= ord(letter) <= 122:
counts[letter] = counts.get(letter,0)+1
s+=1
print("共{}字符".format(s),end="") #end=""不换行输出
items = list(counts.items())
items.sort(key=lambda x:x[0], reverse=False)
for i in range(len(items)):
word ,count = items[i]
print(",{}:{}".format(word,count),end="")
注: print后加end""就可以不换行输出
CSV格式列变换
问题描述:
附件是一个CSV文件,请将每行按照列逆序排列后输出,不改变各元素格式(如周围空格布局等)。
正确程序
fo = open("data.csv")
for line in fo:
line = line.replace("n","")
line = line.split(",")
a=line[::-1] #或者用a.reverse()方法
print(",".join(a))
注:
type(fo)
<class '_io.TextIOWrapper'>
type(第一行line) # line = line.replace("n","")
<class 'str'>
type(第二行line) #line = line.split(",")
<class 'list'>
type(a)
<class 'list'>
文本的平均数
问题描述:
打印输出附件文件的平均列数,计算方法如下:
(1)有效行指包含至少一个字符的行,不计算空行;
(2)每行的列数为其有效字符数;
(3)平均列数为有效行的列数平均值,采用四舍五入方式取整数进位。
正确程序:
f = open("latex.log")
s, c = 0, 0
for line in f:
line = line.strip("n")
if line == "":
continue
s += len(line)
c += 1
print(round(s/c))
注:每一行中都有换行字符“n”,先去掉换行字符再判断是否为空行。
CSV格式清洗与转换
问题描述:
附件是一个CSV格式文件,提取数据进行如下格式转换:
(1)按行进行倒序排列;
(2)每行数据倒序排列;
(3)使用分号(;)代替逗号(,)分割数据,无空格;
正确程序:
f = open("data.csv")
ls = f.readlines()
ls = ls[::-1]
lt = []
for item in ls:
item = item.strip("n")
item = item.replace(" ", "")
lt = item.split(",")
lt = lt[::-1]
print(";".join(lt))
f.close()
注:使用strip()方法去掉每行最后的回车,使用replace()去掉每行元素两侧的空格
学习过程中存在的问题:1.python中从csv格式的文件中读入数据为什么要去掉换行?replace("n","")
2.文件打开方式“+”的同时读写功能指的什么?
相关文章参考链接:https://blog.csdn.net/weixin_43108122/article/details/98338993
https://blog.csdn.net/ybxnp/article/details/107830407
最后
以上就是爱笑香水为你收集整理的国家精品在线开放课程“Python语言程序设计”(北理工-嵩天)-第七周文件和数据格式化 练习题的全部内容,希望文章能够帮你解决国家精品在线开放课程“Python语言程序设计”(北理工-嵩天)-第七周文件和数据格式化 练习题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复