29 lines
866 B
Python
29 lines
866 B
Python
|
price = {
|
||
|
"ACME": 45.23,
|
||
|
"AAPL": 612.78,
|
||
|
"IBM": 205.55,
|
||
|
"HPQ": 37.2,
|
||
|
"FB": 10.75
|
||
|
}
|
||
|
|
||
|
# 对这样的数据,有时候我们想找到最大值对应的键
|
||
|
# 传统方法长这样
|
||
|
a = max(price.values())
|
||
|
print(a)
|
||
|
for key, value in price.items():
|
||
|
if value == a:
|
||
|
print(key)
|
||
|
# 显然,我们要对字典里的这些东西进行遍历才能根据值把键找出来
|
||
|
|
||
|
# 如果我们不想要这样的开销,可以把键值反转:
|
||
|
|
||
|
max_price = max(zip(price.values(), price.keys()))
|
||
|
print(max_price)
|
||
|
|
||
|
# 注意,在对键值反转的zip中使用max和min这类函数时需要注意,如果出现:
|
||
|
# a = {10, "AA"}, b = {10, "ZZ"}的情况
|
||
|
# 由于值相同,会根据键大小返回结果
|
||
|
# 所以如果有多个值相同的字段,还得是老办法
|
||
|
max_price = [key for value, key in zip(price.values(), price.keys()) if value == a]
|
||
|
print(max_price)
|