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]