Python: Liste mischen, aber einige Elemente einfrieren
Ich habe so ein Problem:
Es gibt eine Liste von Elementen der KlasseCAnswer
(keine Notwendigkeit, die Klasse zu beschreiben), und ich muss sie mischen, aber mit einer Einschränkung - einige Elemente der Liste habenCAnswer.freeze
einstellenTrue
und diese Elemente dürfen nicht gemischt werden, sondern müssen an ihren ursprünglichen Positionen bleiben. Sagen wir also für eine gegebene Liste:
[a, b, c, d, e, f]
Wobei alle Elemente Instanzen von sindCAnswer
, aberc.freeze == True
und für anderefreeze == False
könnte das mögliche Ergebnis sein:
[e, a, c, f, b, d]
Das Element mit Index 2 befindet sich also noch an seiner Position.
Was ist der beste Algorithmus, um dies zu erreichen?
Danke im Voraus :)