可能重复:
按指定的非排序顺序的第三个列表排序列表列表
a = [{'id':1}, {'id':2}, {'id':3}]
b = [2,1,3]
Run Code Online (Sandbox Code Playgroud)
什么是排序的好方法dict由listb.通过该id属性.
结果看起来应该是这样的
[{'id':2}, {'id':1}, {'id':3}]
Run Code Online (Sandbox Code Playgroud)
没有巫术是必需的,只要你能保证b已经填充了所有的idS IN a:
In [1]: a = [{'id':1}, {'id':2}, {'id':3}]
In [2]: b = [2,1,3]
In [3]: a.sort(key=lambda v : b.index(v['id']))
In [4]: a
Out[4]: [{'id': 2}, {'id': 1}, {'id': 3}]
Run Code Online (Sandbox Code Playgroud)
(我经常被告知现在lambda应该使用一种替代方案,但这仍然是我知道的最清楚的方法)
编辑: 另请注意,这与链接问题中的此答案几乎完全相同.
| 归档时间: |
|
| 查看次数: |
969 次 |
| 最近记录: |