首页 > 代码库 > [PY3]——怎样在数据字典中执行一些计算操作(比如求最大值、排序等)
[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]——怎样在数据字典中执行一些计算操作(比如求最大值、排序等)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。