|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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)])
|
|