You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中按航空公司分组计算总CO₂排放量

按航空公司统计总CO₂排放量的代码修改方案

需求与现有基础

  • 需求:统计各航空公司的总CO₂排放量
  • 现有基础:已将航班数据加载为字典格式,实现了航班信息列出功能,且具备统计航空公司航班数量的基础逻辑

修改方案

方案1:新增独立统计函数

创建专门用于统计CO₂排放量的函数,逻辑清晰且不影响原有功能:

def calculate_airline_co2_total(self):
    # 初始化字典,键为航空公司标识(flag),值为对应总CO₂排放量
    airline_co2_total = {}
    
    # 遍历所有航班数据
    for flight in self.flights_list.read_data_file():
        # 过滤有效航班:必须有起落地信息,且包含CO₂排放量字段
        if flight.get('dep_icao') and flight.get('arr_icao') and 'co2_emissions' in flight:
            airline_flag = flight['flag']
            current_co2 = flight['co2_emissions']
            
            # 累加排放量:若航空公司已在字典中则追加,否则初始化为当前值
            airline_co2_total[airline_flag] = airline_co2_total.get(airline_flag, 0.0) + current_co2
    
    # 输出统计结果
    print("各航空公司总CO₂排放量统计:")
    for airline, total_co2 in airline_co2_total.items():
        print(f"- {airline}: {total_co2:.2f} kg")
    
    # 返回统计结果字典,方便后续处理
    return airline_co2_total

方案2:修改现有函数,同时保留列航班与统计功能

如果需要在列出航班信息的同时完成统计,可修改原list_all_flights函数:

def list_all_flights(self):
    total_result = 0
    # 初始化CO₂统计字典
    airline_co2_total = {}
    
    for flight in self.flights_list.read_data_file():
        if flight.get('dep_icao') and flight.get('arr_icao'):
            # 打印航班基础信息
            print(f"Flight Number is {flight['flight_number']} and the airline is {flight['flag']} and the aircraft is {flight['aircraft_icao']} going from {flight['dep_icao']} to {flight['arr_icao']}")
            
            # 处理CO₂排放量统计
            if 'co2_emissions' in flight:
                current_co2 = flight['co2_emissions']
                print(f"Flight CO2 emissions is {current_co2} kg\n")
                
                airline_flag = flight['flag']
                airline_co2_total[airline_flag] = airline_co2_total.get(airline_flag, 0.0) + current_co2
    
    # 打印最终统计结果
    print("\n--- 总统计结果 ---")
    for airline, total_co2 in airline_co2_total.items():
        print(f"航空公司 {airline} 的总CO₂排放量:{total_co2:.2f} kg")

关键说明

  • 字段匹配:确保你的JSON数据中包含co2_emissions字段(对应航班示例中的CO₂数值),若实际字段名不同,需替换代码中的键名(比如co2)
  • 安全处理:使用dict.get(key, default)方法避免KeyError,即使航空公司未在字典中也能正常初始化
  • 格式优化:用:.2f格式化输出结果,保留两位小数,提升可读性

内容的提问来源于stack exchange,提问作者Bloober

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 02:36:31