大马强 发表于 2022-1-18 12:29:12

cookbook 1.8

本帖最后由 大马强 于 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


print(min(prices, key=lambda x: prices),
      prices)])
print(max(prices, key=findmax), prices)

FB 10.23
IBM 612.23
页: [1]
查看完整版本: cookbook 1.8