.txt文件中 有飞行员的名字 和飞行时长(会有重复 每月每位飞行员可能飞行N次)
统计出 飞行员和他飞行的总时长
我的思路是:
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