南离c. 2022-07-10 12:44 采纳率: 100%
浏览 23
已结题

关于#python#的问题:.txt文件中 有飞行员的名字 和飞行时长(会有重复 每月每位飞行员可能飞行N次)统计出 飞行员和他飞行的总时长

.txt文件中 有飞行员的名字 和飞行时长(会有重复 每月每位飞行员可能飞行N次)
统计出 飞行员和他飞行的总时长

  • 写回答

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
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月17日
  • 已采纳回答 11月9日
  • 创建了问题 7月10日

悬赏问题

  • ¥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报错