次のリストには、形式 (ID、レベル、値) があります。
[(A, 1, None),
(B, 1, None),
(C, 1, None),
(A, 2, 1.1),
(B, 2, 5.0),
(C, 2, 5.0),
(C, 3, 40),
(B, 3, 55)]
したがって、キャッチは、同じレベルのアイテムを同じ値で1レベル下の値に従ってソートすることです。1レベル下の値が等しい場合は、2 レベル下になります。したがって、エンド リストは次のようになります。
[(A, 1, None),
(C, 1, None), <- this moved up because @ lvl3 C['value'] < B['value']
(B, 1, None),
(A, 2, 1.1),
(C, 2, 5.0), <- this moved up because @ lvl3 C['value'] < B['value']
(B, 2, 5.0),
(C, 3, 40),
(B, 3, 55),]
誰かがそれを達成するためのアルゴリズムを提案できますか? ところで、私は常に開始リストを値でソートしてからレベルでソートします