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 回答