python基础——4、python应用(文件操作,字典,列表,输出格式)——(YZ)

本次的内容为python的应用,关于文件、字典、统计应用,均多应用列表、字典。

习题一

  读入文件pmi_days.csv,完成以下操作:
  1.统计质量等级对应的天数,例如:
  优:5天
  良:3天
  中度污染:2天
  2.找出PMI2.5的最大值和最小值,分别指出是哪一天。

以下是代码内容:

import csv

z1 = 0z2 = 0z3 = 0z4 = 0listp = []listd = []d1 = 0

with open("pmi_days .csv", ‘r‘) as f:    reader = csv.reader(f)    fieldnames = next(reader)  # 获取数据的第一列,作为后续要转为字典的键名 生成器,next方法获取    # print(fieldnames)    csv_reader = csv.DictReader(f,fieldnames=fieldnames)  # self._fieldnames = fieldnames   # list of keys for the dict 以list的形式存放键名    for row in csv_reader:        dict = {}        for key, value in row.items():            dict[key] = value            if value == ‘优‘:                z1 = z1 + 1            if value == ‘良‘:                z2 = z2 + 1            if value == ‘轻度污染‘:                z3 = z3 + 1            if value == ‘中度污染‘:                z4 = z4 + 1            if key == ‘PM2.5‘:                listp.append(int(dict.get("PM2.5")))                listd.append(dict.get("日期"))

    for j in range(0, len(listp)):        if listp[j] == max(listp):            d1 = listd[j]        if listp[j] == min(listp):            x1 = listd[j]

print("优:{}天".format(z1))print("良:{}天".format(z2))print("轻度污染:{}天".format(z3))print("中度污染:{}天".format(z4))print("PM2.5最高:{} PM2.5的值:{}".format(d1,max(listp)))print("PM2.5最低:{} PM2.5的值:{}".format(x1,min(listp)))

以下是运行结果:

本题更多的是格式上的规划,通过循环,判断控制输入与格式达到,筛选出想要的内容、输出结果,并呈现出想要的格式。

题目不难,更多的是逻辑上要清晰,考虑好条件筛选的内容。

习题二

  读入文件1980-2018GDP.csv,完成以下操作:
  1.按行输出每年GDP数据,表头列名如文件第1行所示。

  2.将各年GDP数据转换成字典格式,以年份为keys,其它值为values(数据类型为列表方式),例如:
  {
  2017:[827121.7,6.8%,60989]
  ........
  }

  3.遍历字典数据,求出GDP的最小值与最大值,并输出数据与对应的年份。

  以下是代码内容:

1

import csv
list=[]comp_g=[]comp_y=[]dict_1={}

with open("1980-2018GDP.csv", ‘r‘) as f:    reader = csv.reader(f)    fieldnames = next(reader)    print("第一题:\n")    print(fieldnames)    for row in reader:        list.append(row)    for i in range(0,len(list)):        print("%6s"%list[i][0],"\t\t%-10s"%list[i][1],"\t%-12s"%list[i][2],"\t%-13s"%list[i][3],list[i][4])

with open("1980-2018GDP.csv", ‘r‘) as f:    reader = csv.reader(f)    fieldnames = next(reader)    csv_reader = csv.DictReader(f, fieldnames=fieldnames)    for row in csv_reader:        dict = {}        for key, value in row.items():            dict[key] = value            if key == ‘GDP(亿元)‘:                comp_g.append(float(dict.get(‘GDP(亿元)‘)))                comp_y.append(int(dict.get(‘年份‘)))                #如果属性名为‘GDP(亿元)‘则把对应年份、GDP值放入列表                #供应给最大最小比较之用。

    for i in range(0, len(list)):        dict_1[comp_y[i]] = list[i][1:]        #第二题        #将年份作为字典dict_1的键        #将年份对应内容组成的列表设置成值        #即可做到规范输出格式

    for j in range(0, len(comp_g)):        if comp_g[j] == max(comp_g):            ma = comp_y[j]        if comp_g[j] == min(comp_g):            mi = comp_y[j]

   print("第二题:\n")

    print("各年GDP数据字典格式:")

    print(dict_1)#输出题目要求的格式
   print("第三题:\n")
    print("GDP(亿元)最大年份:{}\t最大值:{}".format(ma,max(comp_g)))# 求出GDP的最小值与最大值    print("GDP(亿元)最小年份:{}\t最小值:{}".format(mi,min(comp_g)))# 并输出数据与对应的年份。

以下是运行结果:

本题更多的是在对代码原理的理解后对,数据统计整理的使用。

根据源代码,进行修改,通过增加限制条件,

通过if等判断条件统计中的词汇,来搜索出你想要的对应信息的数据。

第一小题

通过循环,以及形成列表

最终控制输出

第二小题

将年份作为字典dict_1的键

将年份对应内容组成的列表设置成值

即可做到规范输出格式

第三小题

通过与上一题一样的,增加if条件

做到让值的大小比较做索引

来输出年份

本次习题结束。

所以说很多时候不是你不会,只是缺少更多的思考,更多的细心罢了..

原文地址:https://www.cnblogs.com/yzjz/p/10920077.html

时间: 2024-08-01 13:05:10

python基础——4、python应用(文件操作,字典,列表,输出格式)——(YZ)的相关文章

Python基础(三) 数据类型、文件操作

我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点型以及布尔类型.这些基本数据类型组成了基本控制块,从而创建的Python应用程序. 一.基本结构 1.数值: Python支持不同的数值类型: int (有符号整数): 通常被称为只是整数或整数,是正或负整数,不带小数点. long (长整数 ): 或长,是无限大的整数,这样写整数,后面跟着一个大写或小写的L. 注意:自从Python2.2起,如果整数发生溢出,Python会自动将整数转换为长整数,所以如今在长整数数据后面不加字

python基础(集合、文件操作)

集合: 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. 关系测试,测试两组数据之前的交集.差集.并集等关系. 1,集合的创建. set1 = set({1,2,'barry'}) set2 = {1,2,'barry'} print(set1,set2) # {1, 2, 'barry'} {1, 2, 'barry'} 2,集合的增. set1 = {'

python基础(集合,文件操作)

一.集合(set) 集合:1.无序的,不重复的 2.他里面的元素必须是可哈希的. int str bool () ,但是它本身是不可哈希的.   3.集合不能更改里面的元素   4.集合可以求交集,并集,差集,反交集等. 1.集合的创建 set1 = set({1,2,'alex'}) set2 = set1 print(set1,set2) # 输出结果:{1, 2, 'alex'} {1, 2, 'alex'} 2.集合的增(2种方式) 1.set1.add()(直接增加) set1 = {

Python基础(三)文件操作和处理json

文件操作步骤:1.有一个文件,2.打开文件,3.读写修改文件,4.关闭文件 一.有一个文件:新建或导入文件 二.打开文件:如果是新建的文件默认和py文件在同一个目录:如果是打开文件,要将文件放在py同目录或者是打开文件要写绝对路径 打开文件有两种方式:1. f = open('user.txt') ; 2. with open ('user.txt') as f, open('user2.txt') as f: 两者的区别是第1种方法必须用f.close()关闭,定义一次只能打开一个文件 :第二

python基础_集合、文件操作

集合 集合是一个无序的且数据不会重复.有去重.关系测试的作用 list = ["11","22","33","44","55"] list = set(list) print(list,type(list)) 结果为: {'33', '11', '22', '55', '44'} <class 'set'> 关系测试list1 = set(["11","22&quo

python 基础复习 08 之文件操作及练习

1 # 绝对路径: 就是最完整的路径 例子:"E:\数据结构与算法\python.txt" 2 # 相对路径: 相对则是不完整路径.也就是说咱们写的相对路径必须是当前文件夹里的文件才可以open. 3 4 # 只读 :r 5 # rb 6 # f = open('模特主妇老师', mode='r', encoding='utf-8') 7 # content = f.read() 8 # print(content) 9 # f.close() 10 11 # 在r+模式下 的先读 后

python基础(二)——文件操作

1.创建文件夹 >>> import os >>> os.mkdir("D:\python\dir") 2.判断文件or文件夹 >>> import os#判断是否是文件夹 >>> os.path.isdir(r"D:\python\dir") True#判断是否是文件 >>> os.path.isfile(r"D:\python\dir\file.txt"

python 全栈 python基础 (七)文件操作 笔记(随时更改添加)

文件操作流程: 1.打开文件 open() 2.操作文件 read .writeread(n) n对应读指定个数的 2.x中读取的是字节! 3.x中读取的是字符!read 往外读取文件,是以光标位置开始的,每读取一个,光标就往后移动一位.readline() 默认是读取一行的内容.(第一行)readlines() 读取每一行的内容,组成一个列表.readable() 判断文件是否是可读的 对文件更改权限 mode 可以变更 默认是读操作:r,encoding 指定编码方式 写操作w encodi

004 Python 文件操作 字典 自定义函数

# Python 3 文件操作 字典 自定义函数 ● python 文档 官方英文文档 https://docs.python.org/3/ 汉化版文档 http://python.usyiyi.cn/ ● open() 返回一个文件句柄 参数1:文件地址,绝对地址,或者相对地址 参数2:文件打开的方式 rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278) w 以写方式打开, a 以追加模式打开 (从 EOF 开始, 必要时创建新文件) r+ 以读写模式打开 w+ 以读写模

Python 小程序,对文件操作及其他

下面是自己写的几个对文件操作的小程序,里面涉及到文件操作,列表(集合,字典)的运用等.比如说,从文件中读取一行数据,分别存放于列表中,再对列表进行操作,如去掉里面的重复项,排序等操作. 常见对文件中行进行操作: #这里列出两个常用的方法 方法01: 一次性读取所有行 >>> f = file('1.txt') >>> while 1: lines = f.readlines() if not lines: break for line in lines: print l