的Python - 移动在词典列表元素添加到列表的末尾
问题描述:
我已经词典列表如下:的Python - 移动在词典列表元素添加到列表的末尾
lst = [
{'id': 1, 'language': 'it'},
{'id': 2, 'language': 'en'},
{'id': 3, 'language': 'es'},
{'id': 4, 'language': 'en'}
]
我想移动每一个具有language != 'en'
到列表的末尾词典同时保持其他结果的顺序。所以列表应该看起来像:
lst = [
{'id': 2, 'language': 'en'},
{'id': 4, 'language': 'en'},
{'id': 1, 'language': 'it'},
{'id': 3, 'language': 'es'}
]
答
使用排序。想法是排序是否等于'language'
或不。如果语言等于'en'
那么键功能将返回False
否则True
(False
< True
)。由于Python的排序稳定,订单将被保留。
>>> sorted(lst, key=lambda x: x['language'] != 'en')
[{'id': 2, 'language': 'en'},
{'id': 4, 'language': 'en'},
{'id': 1, 'language': 'it'},
{'id': 3, 'language': 'es'}]
您可以添加,它的作品,因为蟒蛇排序是_stable_ –
@让FrançoisFabre是的,我是在编辑它的中间。 :-) –