鱼C论坛

 找回密码
 立即注册
查看: 1028|回复: 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,)

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

(10.23, 'FB')

需要注意的是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)])
FB 10.23
IBM 612.23

本帖被以下淘专辑推荐:

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 21:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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