使用多个键返回字典中的最大值

时间:2018-05-23 15:19:34

标签: python python-3.x dictionary

我有一个带有宽度和高度的图像字典,我想根据它们的宽度对它们进行排序,或者只是找到字典值中的最大宽度。 谢谢你的帮助。

以下是代码:

ISIC_0011130.jpg --> {'width': 1024, 'heigth': 768}
ISIC_0013581.jpg --> {'width': 4288, 'heigth': 2848}
ISIC_0013832.jpg --> {'width': 3008, 'heigth': 2000}
ISIC_0014127.jpg --> {'width': 4288, 'heigth': 2848}
ISIC_0013861.jpg --> {'width': 4288, 'heigth': 2848}
ISIC_0000169.jpg --> {'width': 722, 'heigth': 542}
ISIC_0001140.jpg --> {'width': 1936, 'heigth': 1936}

输出:

ngZone.run

3 个答案:

答案 0 :(得分:2)

如果要创建具有所需顺序的新dict,可以从排序原始dict项目的结果中创建OrderedDictOrderedDict按照插入顺序存储其项目(而内置的dict没有内部排序)。

from collections import OrderedDict

newDict = OrderedDict(sorted(oldDict.items(), key=lambda x: x[1]['width']))
largest = list(newDict.items())[-1]
# {'ISIC_0013861.jpg', {'width': 4288, 'heigth': 2848})

答案 1 :(得分:0)

按升序高度打印图像:

for k, v in sorted(size_images.items(), lambda kv: kv[1]['height']):
    print (k, '-->', v)

答案 2 :(得分:0)

最大宽度

max与生成器表达式一起使用:

max_width = max(v['width'] for v in size_images.values()}

按宽度排序

sorted与自定义键一起使用:

sorted_list = sorted(sizes_images.items(), key=lambda x: x[1]['width'])

请注意,这将输出元组列表,按宽度最小排序。添加reverse=True以从最大的开始。