如何在Python中使用对象执行功能并获得答案?

时间:2018-12-04 03:09:03

标签: python oop optimization

我是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公式计算每种类型的生命周期成本,并找到最小答案(这只是一个简单的版本,研究范围更大)。我不明白我需要如何将对象字典传递给函数并获得最小值。任何帮助将不胜感激。

2 个答案:

答案 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}