-2

オブジェクトのリストがあります。すべてのオブジェクトには属性「優先度」があり、その値は低、中、高のいずれかです。オブジェクトのリストを並べ替えて、優先度が「高」のオブジェクトがリストの最初に来て、次に優先度「中」、最後に優先度「低」のオブジェクト。 for ループをほとんど使用せずにこれを実行できることはわかっていますが、高速で効果的な Python ソリューションが必要です。申し訳ありませんが、私は Python の初心者です。

4

2 に答える 2

7
score = dict(high=0, medium=1, low=2)
mylist.sort(key=lambda x: score[x.priority])
于 2012-05-10T07:53:44.350 に答える
0

どうもありがとう。Pythonicソリューションに賛成。

ソートされたバリアントを使用しました。

sorted(myList, key = lambda x : score[x.priority])
于 2015-10-11T09:53:31.503 に答える