【发布时间】:2013-07-30 13:28:51
【问题描述】:
假设我有一个由多个列表组成的列表,每个列表包含两个项目:
a = [[14, 0.5], [12, 0.8], [22, 0.6], [15, 0.2], [17, 0.5], [18, 0.4]]
我需要先根据每个列表中的 second 项从 max 到 min 重新排序此列表,然后根据 first 项重新排序从最小到最大。
我知道如何根据两个项目重新排序列表,首先使用第二项,然后使用第一项:
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]]
但这会返回一个列表,从 min 到 max 为 both 项排序,这不是我需要的。
b 应该是这样的:
b = [[12, 0.8], [22, 0.6], [14, 0.5], [17, 0.5], [18, 0.4], [15, 0.2]]
【问题讨论】: