python - 如何使用 Python 中的对象来执行函数并获得答案?
问题描述
我是 Python 和 oop 的新手。对于一项研究,我试图将使用 excel 数据形成的 Python 对象传递给一个函数并获得答案并找到最小值。我已经创建了从 excel 数据到字典的对象,但我不明白如何继续使用该功能。
例如:我有 4 种具有不同属性的不同类型的容器。
Type Investment($) Lifespan
T1 20 10
T2 30 25
T3 10 7
T4 15 8
字典是这样的。
{'T1' : {'Investment' : 20, 'Lifespan' : 10}, 'T2' : {'Investment' : 30, 'Lifespan' : 25}, 'T3' : {'Investment' : 10, 'Lifespan' : 7}, 'T4':{'Investment' : 15, 'Lifespan' : 8}}
所以我需要使用预定义的 LCC 方程计算每种类型的生命周期成本并找到最小答案(这只是一个简单的版本,研究范围更大)。我不明白我需要如何将对象字典传递给函数并获得最小值。任何帮助,将不胜感激。
解决方案
您之前可能没有听说过 lambda,但它们在这里可能非常有用。
def minItem(d: dict):
return min(d, key=lambda k: d[k]['Lifespan'])
这将根据您的子字典的'Lifespan'
键对字典进行排序。k
是每个字典项的键(即'T1'
, 'T2'
, ...)。访问d[k]['Lifespan']
告诉 Python根据该特定键找到最小值。因此,它将比较d['T1']['Lifespan']
, d['T2']['Lifespan']
, ... 对每个项目进行排序,找到最小的元素。
>>> def minItem(d: dict):
return min(d, key=lambda k: d[k]['Lifespan'])
>>> data={'T1' : {'Investment' : 20, 'Lifespan' : 10}, 'T2' : {'Investment' : 30, 'Lifespan' : 25}, 'T3' : {'Investment' : 10, 'Lifespan' : 7}, 'T4':{'Investment' : 15, 'Lifespan' : 8}}
>>> minItem(data)
T3
>>> data[minItem(data)]
{'Investment': 10, 'Lifespan': 7}
推荐阅读
- javascript - 根据所选日期填写星期几
- java - 通过属性名称列表检查 getter 值
- r - 如何为嵌套矩阵匹配和 colSums 加速 R 中的 for 循环
- google-cloud-platform - 将流转换为小批量以加载到 bigquery
- bash - 如何在 Docker CLI 中运行参数化的 bash 脚本
- java - 将 Activity1 中的所有 recyclerview 项目传递给 Activity2 recyclerview 项目
- php - 在后台运行 Laravel cron 作业 - Laravel 5.8
- php - 生产环境中的 PDF 导出速度极慢
- javascript - nodeJs中的箭头函数
- python - 使用堆栈和文件读取来平衡python中的C风格代码