Python: lista aleatoria, pero manteniendo algunos elementos congelados
Tengo un problema:
Hay una lista de elementos de clase.CAnswer
(no es necesario describir la clase), y debo barajarla, pero con una restricción: algunos elementos de la lista tienenCAnswer.freeze
ajustado aTrue
, y esos elementos no se deben barajar, sino permanecer en sus posiciones originales. Entonces, digamos, para una lista dada:
[a, b, c, d, e, f]
Donde todos los elementos son instancias deCAnswer
, peroc.freeze == True
y para otrosfreeze == False
, el posible resultado podría ser:
[e, a, c, f, b, d]
Así que el elemento con índice 2 está todavía en su posición.
¿Cuál es el mejor algoritmo para lograrlo?
Gracias de antemano :)