Python, sort a list by another list
本问题已经有最佳答案,请猛点这里访问。
我有一张单子
1 | a = ['c','d','b','a','e'] |
以及一份清单
1 | b = ['a001','b002','c003','d004','e005'] |
号
我怎样才能得到我的清单
1 | c = ['c003','d004','b002','a001','e005'] |
基本上,使用每个元素的一部分,按照
非常感谢。
您可以使用
1 | c = sorted(b, key = lambda e: a.index(e[0])) |
号
您可以尝试将
1 2 3 | a = ['c', 'd', 'B', 'a', 'e'] b = ['a001', 'B002', 'c003', 'd004', 'e005'] c = sorted(b, key = lambda x: a.index(x[0])) # ['c003', 'd004', 'b002', 'a001', 'e005'] |
如果您有一个非常大的列表,那么使用
相反,您可以构造一个排序映射:
1 2 | order = {v:i for i,v in enumerate(a)} c = sorted(b, key=lambda x: order[x[0]]) |