[PY3]——怎样在数据字典中执行一些计算操作(比如求最大值排序等)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[PY3]——怎样在数据字典中执行一些计算操作(比如求最大值排序等)相关的知识,希望对你有一定的参考价值。
问题
怎样在数据字典中执行一些计算操作(比如求最小值、最大值、排序等等)?
解决方案
zip( )
1. 为了对字典值执行计算操作,通常需要使用 zip()
函数先将键和值反转过来
2. 类似的,也可以使用 zip()
和 sorted()
函数来排列字典数据
prices = { ‘ACME‘: 37.20, ‘AAPL‘: 612.78, ‘IBM‘: 205.55, ‘HPQ‘: 37.20, ‘FB‘: 10.75 } print(min(prices),max(prices)) #直接对字典执行普通的数学运算,其只会对key操作
AAPL IBM
print(min(prices.values()),max(prices.values())) #可通过字典的values函数解决,但输出时只能看到values
10.75 612.78
print(min(prices,key=lambda x:prices[x])) #可通过min/max的key属性函数解决,但输出同样不好看
FB
print(min(zip(prices.values(),prices.keys()))) #先通过zip()将字典”反转”为(value,key)的元组序列
(10.75, ‘FB‘)
print(sorted(zip(prices.values(),prices.keys()))) #若恰巧出现values相同的情况,则根据key的排序结果返回
[(10.75, ‘FB‘), (37.2, ‘ACME‘), (37.2, ‘HPQ‘), (205.55, ‘IBM‘), (612.78, ‘AAPL‘)]
3. 执行这些计算的时候,需要注意的是 zip()
函数创建的是一个只能访问一次的迭代器
prices_and_names=zip(prices.values(),prices.keys()) print(max(prices_and_names)) (612.78, ‘AAPL‘) print(max(prices_and_names)) #第二次再用就报错了 ValueError: max() arg is an empty sequence
以上是关于[PY3]——怎样在数据字典中执行一些计算操作(比如求最大值排序等)的主要内容,如果未能解决你的问题,请参考以下文章