Мне нужно 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. Мне все равно, какой знак представлен, когда есть связи с равной величиной.