如何基于成本重量比获取字典中的最大键(Python实现)
解决方案:找到每磅成本最高的商品总成本键
要解决这个问题,核心是计算每个商品的每磅成本(总成本 ÷ 重量),再找到对应这个值最大的字典键。用Python的max()函数结合key参数就能实现最简洁的Pythonic写法:
inventory = {60: 20, 100: 50, 120: 30} # 用lambda表达式计算每个键对应的每磅成本,作为max的排序依据 max_key = max(inventory, key=lambda k: k / inventory[k]) print(max_key) # 输出: 120
逻辑说明
inventory的键是总成本,值是重量,每磅成本为键 / 值max()的key参数接受一个匿名函数(lambda),该函数会对每个键计算对应的每磅成本,max会根据这个计算结果选出对应的键- 验证计算:60/20=3,100/50=2,120/30=4,显然120对应的每磅成本最高
额外处理:避免重量为0的异常
如果字典中可能存在重量为0的条目,需要加入判断避免除以零错误:
max_key = max( inventory, key=lambda k: k / inventory[k] if inventory[k] != 0 else -float('inf') )
这里把重量为0的条目对应的每磅成本设为负无穷,确保不会被选中。
内容的提问来源于stack exchange,提问作者Pacool1234
相关产品推荐
相关产品推荐

