.txt文件中 有飞行员的名字 和飞行时长(会有重复 每月每位飞行员可能飞行N次)
统计出 飞行员和他飞行的总时长
关于#python#的问题:.txt文件中 有飞行员的名字 和飞行时长(会有重复 每月每位飞行员可能飞行N次)统计出 飞行员和他飞行的总时长
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- a5156520 2022-07-10 14:18关注
我的思路是:
1、创建记录每个飞行员时间的字典
2、遍历飞行时间记录文件的每一行统计飞行时间:首先把遍历到的每一行分隔成日期,姓名,飞行时间三部分,然后遍历字典,如果存在记录则累积飞行时间,如果不存在则新增飞行记录
3、打印遍历文件统计好的飞行记录。
参考链接:
python一行一行读取文件的方法::圈点
python添加键值对的方法_python字典键值对的添加和遍历方法_weixin_39857211的博客-CSDN博客
代码如下:#http://www.xoxxoo.com/index/index/article/id/424 dic={} #创建记录每个飞行员的飞行时间的字典 find=0 with open("case1.txt") as file: #遍历文件的每一行,统计飞行员的飞行时间 for line in file: #https://www.w3cschool.cn/article/7798143.html record = line.split("\t") #把每一行按制表符分隔 date = record[0] #第一个是日期 name = record[1] #第二个是姓名 time = record[2] #第三个是飞行时间 #print("date:",date,"name:",name,"time:",time) for key ,value in dic.items(): #遍历飞行记录字典,如果存在飞行记录则累加飞行时间,如果不存在,则添加新记录 if key == name : #判断飞行记录字典是否存在当前飞行员的记录 find=1 oritime=int(value) #print("name is:",key,"has record, oritime is :", oritime) #https://blog.csdn.net/weixin_39857211/article/details/110380948 if find == 1: #如果存在飞行记录,则累加飞行时间 dic[name]=int(time)+oritime else : #如果不存在飞行记录,则添加新记录 dic.setdefault(name,int(time)) find=0 #查找标记置0,表示默认没有记录 #遍历飞行记录字典,打印每一个飞行员的飞行时间统计 for key in dic: print(key,"总的飞行时间是: ",dic[key])
case1.txt
20220101 张三 92 20220110 张三 90 20220125 张三 89 20220102 李四四 97 20220126 李四四 88 20220102 王五 108 20220112 王五 99 20220127 王五 70 20220103 赵小六 120 20220115 赵小六 110 20220126 赵小六 89 20220107 孙七 108 20220118 孙七 111 20220128 孙七 70
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 Opencv(C++)异常
- ¥15 VScode上配置C语言环境
- ¥15 汇编语言没有主程序吗?
- ¥15 这个函数为什么会爆内存
- ¥15 无法装系统,grub成了顽固拦路虎
- ¥15 springboot aop 应用启动异常
- ¥15 matlab有关债券凸性久期的代码
- ¥15 lvgl v8.2定时器提前到来
- ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
- ¥15 cam_lidar_calibration报错