gpt4 book ai didi

python - 按绝对值排序而不更改为绝对值

转载 作者:行者123 更新时间:2023-12-04 13:19:11 24 4
gpt4 key购买 nike

我想使用 abs() 对元组进行排序,而不实际将元组的元素更改为正值。

def sorting(numbers_array):
return sorted(numbers_array, key = abs(numbers_array))


sorting((-20, -5, 10, 15))

根据 python wiki ( https://wiki.python.org/moin/HowTo/Sorting/#Key_Functions ), sorted(list, key=) 函数假设使用参数 key 进行排序,而不实际更改列表的元素。但是, abs() 只需要 int() 并且我还没有想出一种方法来将该元组变成 int,如果这是我需要做的。

最佳答案

您需要给key 可调用 ,一个函数或类似的调用;它将为正在排序的序列中的每个元素调用。 abs可以是可调用的:

sorted(numbers_array, key=abs)

相反,您传入了 abs() 的结果调用,这确实不适用于整个列表。

演示:
>>> def sorting(numbers_array):
... return sorted(numbers_array, key=abs)
...
>>> sorting((-20, -5, 10, 15))
[-5, 10, 15, -20]

关于python - 按绝对值排序而不更改为绝对值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27905351/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com