[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]——怎样在数据字典中执行一些计算操作(比如求最大值排序等)的主要内容,如果未能解决你的问题,请参考以下文章

字典dict,zip()

Labview中怎样实现用多个按键分别控制执行多个不同的操作?

py3 字符串 字典 列表 元组 集合

[PY3]——字典中的键如何映射多个值?字典如何排序?

对数据帧字典执行操作的优化方式 w.r.t.聚合数据框

PyMySQL操作mysql数据库(py3必学)