我有一个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。如果存在相同幅度的关系,我不在乎提出哪个标志。