python列表排序,key为绝对值,正数在前
时间: 2024-02-18 11:02:58 浏览: 74
关于Python列表排序
5星 · 资源好评率100%
您好,可以使用Python内置函数`sorted()`结合`key`参数来实现该需求。
代码如下:
```python
my_list = [3, -5, 1, 0, -2, 6, -4]
new_list = sorted(my_list, key=lambda x: (abs(x), -x))
print(new_list)
```
运行结果如下:
```
[0, 1, -2, 3, -4, -5, 6]
```
解释一下:
- `key=lambda x: (abs(x), -x)`表示按照元素的绝对值升序排列,如果绝对值相同则按照元素本身的值降序排列。
- 正数在前是因为在`(abs(x), -x)`中,负数的`-x`会使得整个元组变小,从而排在后面。
希望对您有所帮助!
阅读全文