2015-12-01 115 views
-1

我有这样的列表和标量的列表:排序列表

a = [[[3, -4.241], 9] 
[[6, -4.187], 1] 
[[2, -4.215], 4] 
[[9, -4.238], 5]] 

,我需要通过降第一个列表的第一个参数的顺序,这样的排序:

[[[9, -4.238], 5] 
[[6, -4.187], 1] 
[[3, -4.241], 9] 
[[2, -4.215], 4]] 

这不起作用: 排序(A,键=拉姆达X:X [0] [0])

什么是实现这一目标的正确方法?

+0

是否总是1和表1个标?列表总是有2个值吗?然后一个元组更适合。 – Felk

+0

确实总是1个列表和1个标量,而列表总是有2个值。一个元组确实会更好,但如果可能的话,我宁愿不必改变它。 – Rodolphe

+0

您的解决方案适用于我:http://goo.gl/KCGPrd。你的输出是什么?你期望什么? – Felk

回答

2
>>> help(sorted) 
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list 

您必须解决的方向:

sorted(pareto, key=lambda x: x[0][0], reverse=True) 
+0

替代方法只是反转键:'key = lambda x:-x [0] [0]' – Felk