用于确定最小幅度数但在Python中保留符号的优雅机制

时间:2011-11-16 23:29:18

标签: python math

我有一个Pythonic需要根据绝对值确定最小数量,但保留其符号。下面是我现在用来执行此操作的代码。是数学还是蟒蛇更优雅的机制?这个函数是我的应用程序中最常用的函数之一,所以如果它在解释开销和数学计算方面尽可能高效就会很好。

def minmag(*l):
    la=map(abs,l) #store magnitudes
    v=min(map(abs,l)) #find minimum magnitude
    return math.copysign(v,l[la.index(v)]) #put the sign back

print minmag(5,10) #prints 5
print minmag(-5,-10) #prints -5
print minmag(-5,-10,10,-2,-1) #prints -1

P.S。如果存在相同幅度的关系,我不在乎提出哪个标志。

1 个答案:

答案 0 :(得分:15)

您可以使用key的{​​{1}}命名参数:

min

另请参阅:documentation for the built-in function min