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 einstellenTrueund 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 == Trueund für anderefreeze == Falsekö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 :)

Antworten auf die Frage(5)

Ihre Antwort auf die Frage