Files
Python_CookBook_repo/1.数据结构与算法/8.字典计算问题.py
2025-09-10 16:12:45 +08:00

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)