优雅机制在Python中确定最小绝对值但保留符号的数字
我有一个用Python写的需求,就是要找出绝对值最小的数字,同时保留它的符号。下面是我现在用来实现这个功能的代码。请问有没有更优雅的方法,无论是从数学上还是Python的角度来看?这个函数在我的应用中使用得非常频繁,所以如果能在解释执行和数学计算上尽量高效就更好了。
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
另外,我对绝对值相等时显示哪个符号并不在意。
1 个回答
16