1

属性で降順に並べ替えたいオブジェクトの (小さな) リストがあります。

そのような:

obj1.age = 1
obj2.age = 2
obj3.age = 3

list = [obj3,obj2,obj1]
4

2 に答える 2

8

とを使用operator.attrgetter.sortます。

from operator import attrgetter
your_list.sort(key=attrgetter('age'), reverse=True)
于 2013-10-21T14:32:33.697 に答える
5

あなたのリストは小さいので、インポートする必要はありませんoperator.attrgetter。関数で使用sortedすると、lambda同様に実行されます。

sorted(lst, key=lambda x: x.age, reverse=True)

上記のコードでlstは、リストです。名前を変更したのは、変数に名前を付けることlistは組み込みを覆い隠すため、悪い習慣だからです。

また、このソリューションはインプレース ソリューションではありません。つまり、変数に割り当てることができます:

new_lst = sorted(lst, key=lambda x: x.age, reverse=True)
于 2013-10-21T14:33:00.020 に答える