Python: lista tasowania, ale niektóre elementy są zamrożone

Mam taki problem:

Istnieje lista elementów klasyCAnswer (nie ma potrzeby opisywania klasy) i muszę ją przetasować, ale z jednym ograniczeniem - niektóre elementy listy mająCAnswer.freeze UstawićTrue, a te elementy nie mogą być tasowane, ale pozostać na ich pierwotnych pozycjach. Powiedzmy, że dla danej listy:

[a, b, c, d, e, f]

Gdzie wszystkie elementy są instancjamiCAnswer, alec.freeze == Truei dla innychfreeze == Falsemożliwym wynikiem może być:

[e, a, c, f, b, d]

Więc element z indeksem 2 nadal znajduje się na swojej pozycji.

Jaki jest najlepszy algorytm do osiągnięcia tego celu?

Z góry dziękuję :)

questionAnswers(5)

yourAnswerToTheQuestion