我已经尝试了所有我能想象的,但似乎无法得出一个有效的解决方案。
我需要根据它们的 ID 对一组类对象进行排序,以便该 ID 与另一个列表中的相同。
class Item:
def __init__(self,i):
self.i = i
itemList = [Item(2),Item(1),Item(4),Item(3)]
indexList = [3,1,2,4]
预期输出:
itemList_sorted = [Item(3), Item(1), Item(2), Item(4)]
我在这里看到了一个类似的强烈反对的问题,但该解决方案对我没有帮助,因为我不能使用函数并且需要将每个项目的成员与另一个数组中的索引进行比较。
itemList.sort(key=lambda x: x.i - indexList.index) # Wrong
itemList.sort(key=indexList.index,cmp=lambda x,y: x.i==y) # Wrong
有没有一种 Pythonic 方法可以在不诉诸 C 类循环的情况下完成此操作?
提前感谢您的帮助!