Nic*_*mer 4 python sorting python-3.x
我想使用abs()对元组进行排序,而不实际将元组的元素更改为正值.
def sorting(numbers_array):
return sorted(numbers_array, key = abs(numbers_array))
sorting((-20, -5, 10, 15))
Run Code Online (Sandbox Code Playgroud)
根据python wiki(https://wiki.python.org/moin/HowTo/Sorting/#Key_Functions),sort(list,key =)函数假设使用参数键排序而不实际更改元素名单.但是,abs()只接受int()而我没有找到一种方法将该元组变成int,如果这是我需要做的.
Mar*_*ers 11
你需要给key一个可调用的,一个函数或者类似的函数来调用; 它将被调用为被排序的序列中的每个元素.abs可以是可调用的:
sorted(numbers_array, key=abs)
Run Code Online (Sandbox Code Playgroud)
您在代替通过结果的的abs()号召,这的确不符合整个列表工作.
演示:
>>> def sorting(numbers_array):
... return sorted(numbers_array, key=abs)
...
>>> sorting((-20, -5, 10, 15))
[-5, 10, 15, -20]
Run Code Online (Sandbox Code Playgroud)