1

それぞれ 2 つの項目の多数のリストで構成されるリストがあるとします。

a = [[14, 0.5], [12, 0.8], [22, 0.6], [15, 0.2], [17, 0.5], [18, 0.4]]

最初に各リスト内のmax から minまでの2 番目の項目に従って、次に min から max までの最初項目に従って、このリストを並べ替える必要があります。

2番目の項目を最初に、最初の項目を2番目に使用して、2つの項目に従ってリストを並べ替える方法を知っています。

b = sorted(a, key=lambda item:(item[1], item[0]))
b = [[15, 0.2], [18, 0.4], [14, 0.5], [17, 0.5], [22, 0.6], [12, 0.8]]

しかし、これは両方のアイテムの最小から最大に並べられたリストを返しますが、これは必要なものではありません。

これは次のようにbなります。

b = [[12, 0.8], [22, 0.6], [14, 0.5], [17, 0.5], [18, 0.4], [15, 0.2]]
4

2 に答える 2

6

負の値を使用できます。

b = sorted(a, key=lambda item:(-item[1], item[0]))
于 2013-07-30T13:31:48.430 に答える
4

逆に、必要なアイテムの否定を使用するだけです。

>>> b = sorted(a, key=lambda item:(-item[1], item[0]))
>>> b
[[12, 0.8], [22, 0.6], [14, 0.5], [17, 0.5], [18, 0.4], [15, 0.2]]
于 2013-07-30T13:31:55.830 に答える