按数字的绝对值对列表列表进行排序

问题描述 投票:0回答:2

在Python中,如果我有这种格式的输入:

前)。

[[1, 2, -3], [2, -64, 41], [-32, 5, 4]]

我将如何按数字的绝对值对每个列表进行排序?括号内的列表数量取决于用户的输入。

在这种情况下,我想要输出

[[1,2,-3],[2,41,-64], [4,5,-32]]
python arrays list sorting absolute
2个回答
1
投票

sorted选择key参数,这是一个告诉Python使用哪些值来对项目进行排序的函数。在您的情况下,您想要使用abs函数。

 [sorted(item, key=abs) for item in foo]

1
投票

使用abs作为每个子列表的关键功能。

>>> li=[[1, 2, -3], [2, -64, 41], [-32, 5, 4]]
>>> [sorted(sl, key=abs) for sl in li]
[[1, 2, -3], [2, 41, -64], [4, 5, -32]]
© www.soinside.com 2019 - 2024. All rights reserved.