0

こんにちは、最も Pythonic な方法で順序付けられた基準に基づいて辞書のリストを並べ替えたいと思います。例えば:

[{'foo': FOO1}, {'foo': FOO2}, {'foo': FOO10}]

条件は可変です。たとえば、最初に [FOO2, FOO1, FOO8, FOO10] で注文したい場合、結果は次のようになります。

[{'foo': FOO2}, {'foo': FOO1}, {'foo': FOO10}]

その後、状況が変わり、別の基準 [FOO2, FOO10, FOO1] ができた場合、結果は次のようになります。

[{'foo': FOO2}, {'foo': FOO10}, {'foo': FOO1}]

注: 条件には、キー「foo」に関連する記号が常に含まれます。

何か案は?

to_sort = [{'foo': FOO1}, {'foo': FOO2}, {'foo': FOO10}]
to_sort.sort(key=lambda x: x....)

編集:私はそれを理解しました:

>>> to_sort = [{'foo': FOO1}, {'foo': FOO2}, {'foo': FOO10}]
>>> criteria = [FOO10, FOO2, FOO1]
>>> to_sort.sort(key=lambda x: criteria.index(x['foo']))
>>> to_sort
[{'foo': FOO10}, {'foo': FOO2}, {'foo': FOO1}]

敬具

4

1 に答える 1

4

あなたがしたいlist.index()

于 2012-04-23T04:43:26.973 に答える