根据有序条件对Python字典列表进行排序

时间:2012-04-23 04:40:44

标签: python list sorting

嗨,我想以最恐怖的方式订购基于有序标准的词典列表。例如:

[{'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}]

亲切的问候

1 个答案:

答案 0 :(得分:4)

你想要list.index()