Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按两项列出的订单清单_Python_List - Fatal编程技术网

Python 按两项列出的订单清单

Python 按两项列出的订单清单,python,list,Python,List,假设我有一个由多个列表组成的列表,每个列表包含两个项目: a = [[14, 0.5], [12, 0.8], [22, 0.6], [15, 0.2], [17, 0.5], [18, 0.4]] 我需要首先根据每个列表中的第二项从max到min重新排列此列表,然后根据第一项从min到max重新排列此列表 我知道如何根据两项对列表进行重新排序,第一项使用第二项,第二项使用第一项: b = sorted(a, key=lambda item:(item[1], item[0])) b = [[

假设我有一个由多个列表组成的列表,每个列表包含两个项目:

a = [[14, 0.5], [12, 0.8], [22, 0.6], [15, 0.2], [17, 0.5], [18, 0.4]]
我需要首先根据每个列表中的第二项从max到min重新排列此列表,然后根据第一项从min到max重新排列此列表

我知道如何根据两项对列表进行重新排序,第一项使用第二项,第二项使用第一项:

b = sorted(a, key=lambda item:(item[1], item[0]))
b = [[15, 0.2], [18, 0.4], [14, 0.5], [17, 0.5], [22, 0.6], [12, 0.8]]
但这会返回一个列表,该列表对两个项都从最小值到最大值排序,这不是我需要的

这就是
b
的外观:

b = [[12, 0.8], [22, 0.6], [14, 0.5], [17, 0.5], [18, 0.4], [15, 0.2]]

可以使用负值:

b = sorted(a, key=lambda item:(-item[1], item[0]))

可以使用负值:

b = sorted(a, key=lambda item:(-item[1], item[0]))

只需将所需项目的否定项反向使用即可:

>>> b = sorted(a, key=lambda item:(-item[1], item[0]))
>>> b
[[12, 0.8], [22, 0.6], [14, 0.5], [17, 0.5], [18, 0.4], [15, 0.2]]

只需将所需项目的否定项反向使用即可:

>>> b = sorted(a, key=lambda item:(-item[1], item[0]))
>>> b
[[12, 0.8], [22, 0.6], [14, 0.5], [17, 0.5], [18, 0.4], [15, 0.2]]

因为你和w.m都在几乎相同的时间回答了同一件事,我把他的回答标记为接受,以提高他的声誉(你有很多!:)。谢谢你们两位@加布里埃尔。哈哈。我喜欢你的推理但事实上,没必要这样。不客气:)因为你和w.m都在几乎相同的时间回答了同样的问题,我把他的回答标记为接受,以提高他的声誉(你有很多!:)。谢谢你们两位@加布里埃尔。哈哈。我喜欢你的推理但事实上,没必要这样。不客气:)