我正在寻找一些帮助来理解Python中字典的最佳实践。你知道吗
我举了一个例子:
def convert_to_celsius(temp, source):
conversion_dict = {
'kelvin': temp - 273.15,
'romer': (temp - 7.5) * 40 / 21
}
return conversion_dict[source]
def convert_to_celsius_lambda(temp, source):
conversion_dict = {
'kelvin': lambda x: x - 273.15,
'romer': lambda x: (x - 7.5) * 40 / 21
}
return conversion_dict[source](temp)
显然,这两个功能实现了相同的目标,但通过不同的方式实现。有没有人能帮我理解这两者之间的细微差别,以及“最好”的方法是什么?你知道吗
尽管两者实现了相同的功能,但第一部分的可读性更强,速度更快。你知道吗
在第一个示例中,您有一个简单的算术运算,一旦调用
convert_to_celsius
就会计算这个运算。你知道吗在第二个例子中,只计算所需的温度。你知道吗
如果你让第二个函数做一个昂贵的计算,那么使用一个函数来代替可能是有意义的,但是对于这个特殊的例子,它不是必需的。你知道吗
如果您在函数中创建了两个字典,那么前者的效率会更高-尽管前者在只需要一个字典的情况下执行两个计算,但是在后一个版本中,每次调用lambda时创建lambda的开销会更大:
但是,如果将
lambda
s的字典移到函数外部:后者效率更高,因为
lambda
对象只创建一次,函数只对每个调用进行必要的计算:请注意,这只在函数被大量调用(在本例中为1000000次)的情况下才是一个好处,因此创建两个
lambda
函数对象的开销比只需要一个结果时计算两个结果所浪费的时间要少。你知道吗字典是完全没有意义的,因为你需要在每次调用时重新创建它,但你所做的只是一次查找。请使用
if
:相关问题 更多 >
编程相关推荐