鱼C论坛

 找回密码
 立即注册
查看: 796|回复: 0

[技术交流] cookbook 1.8

[复制链接]
发表于 2022-1-18 12:29:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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,)

  1. prices = {
  2.     "ACME": 45.23,
  3.     "IBM": 612.23,
  4.     "AAPL": 205.23,
  5.     "HPQ": 19.23,
  6.     "FB": 10.23,
  7. }

  8. d = zip(prices.values(), prices.keys())
  9. print(min(d))
复制代码

(10.23, 'FB')

需要注意的是d作为一个生成器,里边的元素都是一次性的,所以不能再执行一次 print(min(d)),报 ValueError错误
但是可以这样
  1. print(min(zip(prices.values(), prices.keys())))
  2. print(max(zip(prices.values(), prices.keys())))
复制代码


二、key参数设置
  1. def findmax(a):
  2.     return prices[a]


  3. print(min(prices, key=lambda x: prices[x]),
  4.       prices[min(prices, key=lambda x: prices[x])])
  5. print(max(prices, key=findmax), prices[max(prices, key=findmax)])
复制代码
FB 10.23
IBM 612.23

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 17:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表