想像できる限りのことを試しましたが、有効な解決策にたどり着けないようです。
この 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
Cのようなループに頼らずにこれを達成するためのPython的な方法はありますか?
助けてくれてありがとう!