- Python算法详解
- 张玲玲
- 405字
- 2020-06-27 17:50:51
2.3.5 获取字典中的最大值和最小值
在Python程序中,可以对字典中的数据执行各种数学运算,例如求最小值、最大值和排序等。为了能对字典中的内容实现有用的计算操作,通常会利用内置函数zip()将字典的键和值反转过来。要对字典中的数据进行排序操作,利用函数zip()和sorted()即可实现。
在Python程序中,函数zip()可以将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回的列表长度与最短对象的相同。利用星号“*”操作符,可以将元组解压为列表。使用函数zip()的语法格式如下所示。
zip([iterable, ...])
其中,参数iterable表示一个或多个迭代器。
下面的实例文件jisuan.py演示了分别获取字典中最大值和最小值的过程。
源码路径:daima\第2章\jisuan.py
price = { '小米': 899, '华为': 1999, '三星': 3999, '谷歌': 4999, '酷派': 599, 'iPhone': 5000, } min_price = min(zip(price.values(), price.keys())) print(min_price) max_price = max(zip(price.values(), price.keys())) print(max_price) price_sorted = sorted(zip(price.values(), price.keys())) print(price_sorted) price_and_names = zip(price.values(), price.keys()) print((min(price_and_names))) # print (max(price_and_names)) error zip()创建了迭代器,内容只能被消费一次 print(min(price)) print(max(price)) print(min(price.values())) print(max(price.values())) print(min(price, key=lambda k: price[k])) print(max(price, key=lambda k: price[k]))
执行结果如图2-24所示。
图2-24 执行结果