Hyp*_*ion 5 python sorting dictionary list
我有一个这样的词典列表:
lst = [
{'id': 1, 'language': 'it'},
{'id': 2, 'language': 'en'},
{'id': 3, 'language': 'es'},
{'id': 4, 'language': 'en'}
]
Run Code Online (Sandbox Code Playgroud)
我想移动language != 'en'
列表末尾的每个字典,同时保持其他结果的顺序.所以列表应该如下所示:
lst = [
{'id': 2, 'language': 'en'},
{'id': 4, 'language': 'en'},
{'id': 1, 'language': 'it'},
{'id': 3, 'language': 'es'}
]
Run Code Online (Sandbox Code Playgroud)
Ash*_*ary 12
使用排序.想法是要判断是否等于'language'
.如果语言等于,'en'
那么键函数将返回False
else 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'}]
Run Code Online (Sandbox Code Playgroud)