我想使用 abs() 对元组进行排序,而不实际改变元组中的元素为正值。
根据 Python 维基百科(https://wiki.python.org/moin/HowTo/Sorting/#Key_Functions),sorted(list, key=) 函数应该使用参数 key 进行排序,而不会实际改变列表的元素。然而,abs() 只接受 int(),我还没有想出把那个元组转换成 int 的方法,如果需要的话。
def sorting(numbers_array):
return sorted(numbers_array, key = abs(numbers_array))
sorting((-20, -5, 10, 15))
根据 Python 维基百科(https://wiki.python.org/moin/HowTo/Sorting/#Key_Functions),sorted(list, key=) 函数应该使用参数 key 进行排序,而不会实际改变列表的元素。然而,abs() 只接受 int(),我还没有想出把那个元组转换成 int 的方法,如果需要的话。
sorted((-20, -5, 10, 15), key=lambda v: -v if v<0 else v)
是一个替代更正确的sorted((-20, -5, 10, 15), key=abs)
的方法。 - dawg