2

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

2 番目のネストされたリストは、最初の項目 (val1 > val2 > val3 ...) で既に並べ替えられていますが、3 つのタプル [x,y,z] も 2 つの基準に従って降順で並べ替えて表示する必要があります。

  1. val1 の値 (高い順)
  2. 同じ val1 の場合、最大の発生数_of_val1 (上記の 2 つの値が同じ場合、おそらく val2 に適用されます)

どうすればいいですか?おそらくitemgetterを使用していますが、この場合はわかりません。

4

2 に答える 2

7

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

于 2012-08-20T14:39:49.647 に答える
3

これをテストしました

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 の 2 番目の要素、つまり this elements でソートすることです[[val1, occurrences_of_val1], [val2, occurrences_of_val2],...]。暗黙的に、それは でソートされval1、等しい場合はoccurrences_of_val1... でソートされます

于 2013-05-08T08:12:12.257 に答える