2012-04-23 3 views
0

Привет, я хочу заказать список словарей на основе упорядоченных критериев по самому Pythonic-методу. Например:Сортировка списка словарей Python в зависимости от упорядоченного критерия

[{'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....) 

EDIT: я понял это:

>>> 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}] 

Сердечные приветы

ответ

Смежные вопросы