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