我有清单
value =[(22, 11, 195, 37), (19, 11, 184, 45), (300, 17, 12, 19), (210, 18, 128, 30) (100, 18, 128, 30)]
现在,我需要按照升序列表中的前两个值对列表进行排序。
像这样
s = [(19, 11, 184, 45), (22, 11, 195, 37), (300, 17, 12, 19),(100, 18, 128, 30), (210, 18, 128, 30) ]
我用了
s = sorted(value, key = lambda x: (x[1], x[0]))
我最终像这样对列表的第二(x [1])值进行了排序,
s = [(22, 11, 195, 37), (19, 11, 184, 45), (300, 17, 12, 19), (210, 18, 128, 30) (100, 18, 128, 30)]
有什么方法吗?我也尝试过使用运算符库,它给我相同的结果。
好吧,经过很多摆弄,我想我做到了。这是我的代码:
sorted(s, key=lambda x: (x[1] * 1, x[0]))
输出为:
[(19, 11, 184, 45), (22, 11, 195, 37), (300, 17, 12, 19), (100, 18, 128, 30), (210, 18, 128, 30)]
基本上,这是按照索引1对元组进行排序,但是如果两个或多个元组在索引1上具有相同的编号,它将检查其索引0的编号并对其进行升序排序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句