gpt4 book ai didi

python - 对具有更高优先级正数的绝对值的整数列表进行排序

转载 作者:行者123 更新时间:2023-12-05 08:16:40 25 4
gpt4 key购买 nike

如何根据整数的绝对值对整数列表进行排序,以便正数获得更高的优先级 -

示例输入

lst = [1, -3, 3, -3, 12, 10]

预期输出

[1, 3, -3, -3, 10, 12]

我现在可以用这样的代码来完成它,但我对函数中的任意 0.1 感到困扰,想知道是否有更简洁的方法

我的代码

sorted(lst, key=lambda x: abs(x) if x >= 0 else abs(x) + 0.1)
# [1, 3, -3, -3, 10, 12]

最佳答案

另一种解决方案是使用元组作为排序键:

sorted(lst, key=lambda x: (abs(x), x < 0))

为了更好地理解它:

 1 ~ (1, False)  ~ (1, 0)
-3 ~ (3, True) ~ (3, 1)
3 ~ (3, False) ~ (3, 0)
-3 ~ (3, True) ~ (3, 1)
12 ~ (12, False) ~ (12, 0)
10 ~ (10, False) ~ (10, 0)

关于python - 对具有更高优先级正数的绝对值的整数列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72490213/

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