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

Python中实现航班号与乘客数冒号拼接及航班乘客统计问题

解决航班乘客统计中的字符串拼接与逻辑问题

看起来你在统计航班乘客数量时遇到了两个核心问题:一是append方法的使用错误,二是原逻辑存在重复添加的隐患。让我一步步帮你梳理解决:

1. 修复append行的错误

你的代码中finallist.append(elem,":",count)这一行有两个明显问题:

  • list.append()方法只能接受一个参数,你传入三个参数会直接抛出TypeError。
  • 你需要将航班号、冒号、乘客数拼接成单个字符串,再添加到结果列表中。

Python中用冒号连接两个值的三种常用方式

这里有几种简洁的实现方式,按需选择:

  • f-string(推荐,Python3.6+):最直观的写法,自动处理类型转换(比如把整数count转为字符串)
    finallist.append(f"{elem}:{count}")
    
  • str.format()方法:兼容更早的Python版本
    finallist.append("{}:{}".format(elem, count))
    
  • 字符串拼接:需要手动将非字符串类型转为字符串
    finallist.append(elem + ":" + str(count))
    

2. 修复原逻辑的重复添加问题

你的代码还有个隐藏bug:if elem not in finallist:的判断会完全失效。因为finallist里的元素是拼接后的字符串(比如"AI567:2"),而elem是纯航班号(比如"AI567"),所以每次循环都会认为elem不在列表中,导致重复添加相同航班的条目。

更高效的优化方案(用字典统计)

推荐用字典来统计航班频次,只需要遍历一次票务列表,时间复杂度从O(n²)降到O(n),逻辑也更清晰:

def find_passengers_per_flight():
    '''Write the logic to find and return a list having number of passengers traveling per flight based on the details in the ticket_list In the list, details should be provided in the format: [flight_no:no_of_passengers, flight_no:no_of_passengers, etc.].'''
    ticket_list = ["AI567:MUM:LON:014","AI077:MUM:LON:056", "BA896:MUM:LON:067", "SI267:MUM:SIN:145","AI077:MUM:CAN:060","SI267:BLR:MUM:148","AI567:CHE:SIN:015","AI077:MUM:SIN:050","AI077:MUM:LON:051","SI267:MUM:SIN:146"]
    flight_counts = {}
    
    # 遍历票务列表,统计每个航班的乘客数
    for ticket in ticket_list:
        flight_no = ticket.split(":")[0]
        if flight_no in flight_counts:
            flight_counts[flight_no] += 1
        else:
            flight_counts[flight_no] = 1
    
    # 将字典转换为要求的格式列表
    finallist = [f"{flight}:{count}" for flight, count in flight_counts.items()]
    
    print(finallist)
    return finallist

运行后会输出符合要求的结果:

['AI567:2', 'AI077:4', 'BA896:1', 'SI267:3']

总结

  • 用f-string是Python中拼接字符串最便捷的方式,支持变量直接嵌入,代码可读性拉满。
  • 统计频次时优先使用字典,不仅效率更高,还能避免重复判断的逻辑错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 11:57:58