我是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公式计算每种类型的生命周期成本,并找到最小答案(这只是一个简单的版本,研究范围更大)。我不明白我需要如何将对象字典传递给函数并获得最小值。任何帮助将不胜感激。
答案 0 :(得分:0)
您在问一个复杂的问题,需要多个步骤。为了从字典中获取最小值,您可以尝试使用此方法,它将从“寿命”数据中返回最小值。
将字典对象传递给函数。
SET @time := '2018-11-08 00:36:50.000000';
SET @intervalInMinutes := 15;
SELECT TIMESTAMP(DATE(@time), SEC_TO_TIME(FLOOR(TIME_TO_SEC(TIME(@time)) / (@intervalInMinutes * 60)) * (@intervalInMinutes * 60)));
答案 1 :(得分:0)
您以前可能没有听说过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}