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

如何在存储图片尺寸的字典中查找最大宽度或按宽度排序?

解决方案:按图片宽度排序字典 & 找出最大宽度

首先,你已经成功获取了图片路径与对应宽高的字典size_images,接下来咱们来实现你需要的两个功能:

一、找出字典中图片的最大宽度

你可以利用Python内置的max()函数,通过指定key参数提取每个字典项的宽度值进行比较,不仅能拿到最大宽度值,还能直接获取对应图片的信息:

# 获取最大宽度值
max_width = max(v['width'] for v in size_images.values())
print(f"最大宽度值:{max_width}")

# 获取所有拥有最大宽度的图片(可能存在多个)
max_width_images = [(k, v) for k, v in size_images.items() if v['width'] == max_width]
print("拥有最大宽度的图片:")
for img_name, img_size in max_width_images:
    print(f"{img_name} --> {img_size}")

针对你的示例输出,运行这段代码会得到:

最大宽度值:4288
拥有最大宽度的图片:
ISIC_0013581.jpg --> {'width': 4288, 'heigth': 2848}
ISIC_0014127.jpg --> {'width': 4288, 'heigth': 2848}
ISIC_0013861.jpg --> {'width': 4288, 'heigth': 2848}

二、按图片宽度对字典进行排序

在Python 3.7及以上版本中,字典是有序的,你可以使用sorted()函数对字典的项进行排序,通过key参数指定按宽度排序,支持正序(从小到大)和倒序(从大到小):

1. 按宽度从小到大排序

# 按宽度正序排序,返回有序字典
sorted_by_width_asc = dict(sorted(size_images.items(), key=lambda item: item[1]['width']))

# 打印排序后的结果
print("按宽度从小到大排序:")
for k, v in sorted_by_width_asc.items():
    print(f"{k} --> {v}")

2. 按宽度从大到小排序

只需要在sorted()里添加reverse=True参数即可:

# 按宽度倒序排序
sorted_by_width_desc = dict(sorted(size_images.items(), key=lambda item: item[1]['width'], reverse=True))

print("按宽度从大到小排序:")
for k, v in sorted_by_width_desc.items():
    print(f"{k} --> {v}")

针对你的示例输出,倒序排序后的结果会是:

按宽度从大到小排序:
ISIC_0013581.jpg --> {'width': 4288, 'heigth': 2848}
ISIC_0014127.jpg --> {'width': 4288, 'heigth': 2848}
ISIC_0013861.jpg --> {'width': 4288, 'heigth': 2848}
ISIC_0013832.jpg --> {'width': 3008, 'heigth': 2000}
ISIC_0001140.jpg --> {'width': 1936, 'heigth': 1936}
ISIC_0011130.jpg --> {'width': 1024, 'heigth': 768}
ISIC_0000169.jpg --> {'width': 722, 'heigth': 542}

小提示

注意到你代码里的拼写错误:heigth应该是height,虽然不影响当前功能,但建议修正,避免后续维护时产生混淆~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:52:58