2

a=[{'post': 3, 'value': 42}, {'post': 4, 'value': 12}, {'post': 12, 'value': 25}]

これをどのように並べ替えることができますか:

a=[{'post': 3, 'value': 42}, {'post': 12, 'value': 25}, {'post': 4, 'value': 12}]

逆に大切にするという意味です。

4

3 に答える 3

3

keyおよびreverse引数を使用できます。

result = sorted(a, key=lambda d:d["value"], reverse=True)

keyリストの要素を指定すると、ソートが実行される値を返す関数でなければなりません。この場合、渡される関数は、与えられたディクショナリが key に関連付けられた値を返す無名関数です"value"

リストのソートされたコピーsorted(x)を返すことに注意してください。リストをその場でソートしたい場合は、同じパラメータを渡してリスト オブジェクトのメソッドを呼び出すだけです。と同等ではないことにも注意してください。sortx = sorted(x)x.sort()

うまくいけば、醜い「ラムダ」モンスターが含まれていても、これは依然として妥当な Python と見なされます... :-)

于 2012-07-18T18:15:49.833 に答える
1
a=[{'post': 3, 'value': 42}, {'post': 4, 'value': 12}, {'post': 12, 'value': 25}]

a.sort(key=lambda d: -d['value'])
于 2012-07-18T18:15:03.303 に答える
0
>>> from operator import itemgetter
>>> a=  [{'post': 3, 'value': 42}, {'post': 12, 'value': 25}, {'post': 4, 'value': 12}]
>>> sorted(a, key=itemgetter('value'), reverse=True)
[{'post': 3, 'value': 42}, {'post': 12, 'value': 25}, {'post': 4, 'value': 12}]
于 2012-07-20T00:05:20.080 に答える