已知有列表 a,想要实现列表 a 根据另一个列表 order 的值进行排序,或者说实现列表根据两一个列表值重排序,实现方法有两种:
方法1:
In [66]: a
Out[66]: [array([1, 0, 3, 2, 4, 5]), array([4, 1, 2, 3, 5, 0]), array([0, 0, 0])]
In [67]: order
Out[67]: [2, 0, 1]
In [68]: [a[i] for i in order]
Out[68]: [array([0, 0, 0]), array([1, 0, 3, 2, 4, 5]), array([4, 1, 2, 3, 5, 0])]
方法2:
In [76]: a
Out[76]: [array([1, 0, 3, 2, 4, 5]), array([4, 1, 2, 3, 5, 0]), array([0, 0, 0])]
In [77]: order
Out[77]: [2, 0, 1]
In [78]: list(np.array(a, dtype=object)[order])
Out[78]: [array([0, 0, 0]), array([1, 0, 3, 2, 4, 5]), array([4, 1, 2, 3, 5, 0])]
参考资料:https://stackoverflow.com/questions/2177590/how-can-i-reorder-a-list
python 列表根据另一个列表重排序(python list rearrange according to another list)
原文:https://www.cnblogs.com/ttweixiao-IT-program/p/14537455.html