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 == True
i dla innychfreeze == False
moż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ę :)