字典的最小值、最大值、排序

时间:2022-04-22 15:14:41

如果想给字典求得最大值/最小值/排序后,能同时得到键值对,就需要使用zip()把键值反转过来,形成(值,键) 元组序列,然后再求最大值/最小值/排序。
zip()的返回值是一个只能访问一次迭代器

prices = {
    'ACME': 45.23,
    'AAPL': 612.78,
    'IBM': 205.55,
    'HPQ': 37.20,
    'FB': 10.75
}
min_price = min(zip(prices.values(), prices.keys()))
print(min_price)
# min_price is (10.75, 'FB')
max_price = max(zip(prices.values(), prices.keys()))
print(max_price)
# max_price is (612.78, 'AAPL')

参考:
http://python3-cookbook.readthedocs.io/zh_CN/latest/c01/p08_calculating_with_dict.html