Python:根据两个条件对嵌套列表进行排序

Ric*_*son 2 python sorting list

在Python中,我有一个嵌套列表,如下所示:

[ [[x1,y1,z1], [['0.9', 4], [0.8, 3], [0.5, 10], [0.1, 11]], 
  [[x2,y2,z2], [['1.0', 8], [0.8, 3], [0.2, 1], [0.1, 8]]
...]
Run Code Online (Sandbox Code Playgroud)

所以每个元素的形式如下:

 [[3-tuple], [[val1, occurrences_of_val1], [val2, occurrences_of_val2],...]]
Run Code Online (Sandbox Code Playgroud)

第二个嵌套列表已按第一个项目排序(val1> val2> val3 ...),但我还希望3元组[x,y,z]按照两个条件按降序排列:

  1. val1的值(最高的第一个)
  2. 在val1相同的情况下,最高出现次数_of_val1(如果上面的两个值相同,则可能应用于val2)

我该怎么做呢?可能与itemgetter,但我不确定在这种情况下.

Ste*_*ski 7

yourList.sort(key=lambda x: x[1], reverse=True)

  • 我只是建议你发布这个作为答案. (2认同)
  • @DSM:我注意到了.如果值不在"0.0"和"9.9"之间,则会引起问题.有一些数据类型的陌生感.另外,我认为使用对象列表可能会更好. (2认同)