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

如何用Python 3提取列表中各城市对应最高frame编号的图片?

解决方案:提取每个城市最高Frame值的图片文件名

这里有个简洁的Python 3实现思路,核心是用字典跟踪每个城市的最高frame记录,遍历列表后就能得到目标结果:

# 原始图片列表
image_list = [
    "Ahmedabad_frame_1_vid_0.jpg", "Ahmedabad_frame_2_vid_1.jpg",
    "Ahmedabad_frame_3_vid_2.jpg", "Ahmedabad_frame_4_vid_3.jpg",
    "Bombay_frame_1_vid_0.jpg", "Bombay_frame_2_vid_1.jpg",
    "Bombay_frame_3_vid_2.jpg", "Bombay_frame_15_vid_3.jpg",
    "Cuttak_frame_1_vid_0.jpg", "Cuttak_frame_2_vid_1.jpg",
    "Cuttak_frame_3_vid_0.jpg", "Cuttak_frame_56_vid_3.jpg",
    "Delhi_frame_1_vid_0.jpg", "Delhi_frame_2_vid_1.jpg",
    "Delhi_frame_3_vid_2.jpg", "Delhi_frame_44_vid_3.jpg"
]

# 字典用于存储每个城市对应的最高frame文件名
city_max_frame = {}

for img_name in image_list:
    # 拆分文件名获取关键信息
    parts = img_name.split('_')
    city = parts[0]
    frame_num = int(parts[2])  # 转换为整数方便比较
    
    # 更新当前城市的最高frame记录
    if city not in city_max_frame:
        city_max_frame[city] = img_name
    else:
        # 提取已有记录的frame数并比较
        existing_frame = int(city_max_frame[city].split('_')[2])
        if frame_num > existing_frame:
            city_max_frame[city] = img_name

# 转换为目标列表格式
result = list(city_max_frame.values())
print(result)

代码说明:

  • 用city_max_frame字典追踪每个城市的最高frame文件,键为城市名,值为对应文件名
  • 遍历每个文件名时,通过split('_')拆分出城市和frame数值,将frame转为整数才能正确比较大小
  • 遇到同一城市的文件时,对比当前frame与字典中已存的frame值,保留更大值对应的文件名
  • 最后将字典的所有值转为列表,就是我们需要的结果

运行结果:

执行代码后会输出预期的列表:

["Ahmedabad_frame_4_vid_3.jpg", "Bombay_frame_15_vid_3.jpg", "Cuttak_frame_56_vid_3.jpg", "Delhi_frame_44_vid_3.jpg"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 21:33:01