簡體   English   中英

Python:根據兩個條件對嵌套列表進行排序

[英]Python: sort list of nested lists according to two criteria

在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]]
...]

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

 [[3-tuple], [[val1, occurrences_of_val1], [val2, occurrences_of_val2],...]]

第二個嵌套列表已按第一個項目排序(val1> val2> val3 ...),但我還希望3元組[x,y,z]按照兩個條件按降序排列:

  1. val1的值(最高的第一個)
  2. 在val1相同的情況下,最高出現次數_of_val1(如果上面的兩個值相同,則可能應用於val2)

我該怎么做呢? 可能與itemgetter,但我不確定在這種情況下。

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

我測試了這個

X=[ [[4,5,6], [[3.0, 4], [0.8, 3], [0.5, 10], [0.1, 11]]],
  [[2,1,3], [[2.0, 8], [0.8, 3], [0.2, 1], [0.1, 8]]]]
>>> X.sort(key=lambda x: x[1])
>>> X
[[[2, 1, 3], [[2.0, 8], [0.80000000000000004, 3], [0.20000000000000001, 1], [0.10000000000000001, 8]]], [[4, 5, 6], [[3.0, 4], [0.80000000000000004, 3], [0.5, 10], [0.10000000000000001, 11]]]]

最重要的是, X.sort(key=lambda x: x[1])按X的第二個元素排序,即通過此元素[[val1, occurrences_of_val1], [val2, occurrences_of_val2],...]排序。 隱含地,它按val1排序,然后在occurrences_of_val1等於的情況下由occurrences_of_val1 ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM