Я хотел бы сделать случайное перемешивание списка, но с одним условием: элемент никогда не может находиться в той же исходной позиции после перемешивания.
Есть ли однострочный способ сделать это в python для списка?
Пример:
list_ex = [1,2,3]
каждый из следующих перетасованных списков должен иметь одинаковую вероятность выборки после перетасовки:
list_ex_shuffled = [2,3,1]
list_ex_shuffled = [3,1,2]
но перестановки [1,2,3], [1,3,2], [2,1,3] и [3,2,1] не допускаются, поскольку все они повторяют одну из позиций элементов.
ПРИМЕЧАНИЕ. Каждый элемент в list_ex имеет уникальный идентификатор. Не допускается повторение одного и того же элемента.
Любые идеи? Спасибо!
[2, 2, 2]
? - person crayzeewulf   schedule 20.03.2013rotate
может привести к ожидаемый результат. Но в некоторых случаях, как в приведенном выше комментарии, у вас нет четкого определения ожидаемого результата. - person sean   schedule 20.03.2013