| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 本帖最后由 大马强 于 2022-1-18 12:29 编辑  
 
 
有关字典的计算  
问题描述: 
        我们想在字典上对数据执行各种各样的计算(最大,最小,排序等) 
 
一、zip()方法 
zip(A,B) 按顺序消耗 A B 中的元素将其重新组合 ,A B要是可迭代对象,返回值是个迭代器 
zip((1,2),("a","b"))  = > 1a 2b 
zip((1,2),("a",))  = > 1a 
zip((1,),("a","b"))  = > 1a 
zip((1,2))  = > (1,) (2,)  
- prices = {
 
 -     "ACME": 45.23,
 
 -     "IBM": 612.23,
 
 -     "AAPL": 205.23,
 
 -     "HPQ": 19.23,
 
 -     "FB": 10.23,
 
 - }
 
  
- d = zip(prices.values(), prices.keys())
 
 - print(min(d))
 
  复制代码 
 
需要注意的是d作为一个生成器,里边的元素都是一次性的,所以不能再执行一次 print(min(d)),报 ValueError错误 
但是可以这样 
- print(min(zip(prices.values(), prices.keys())))
 
 - print(max(zip(prices.values(), prices.keys())))
 
  复制代码 
 
二、key参数设置 
- def findmax(a):
 
 -     return prices[a]
 
  
 
- print(min(prices, key=lambda x: prices[x]),
 
 -       prices[min(prices, key=lambda x: prices[x])])
 
 - print(max(prices, key=findmax), prices[max(prices, key=findmax)])
 
 
  复制代码 
  |   
 
 
 
 |