Chciałbym losowo przetasować listę tak, aby każda zmienna na liście podczas jej losowania została umieszczona w nowym miejscu na liście.Python: Jak losowo przetasować listę, w której każda zmienna znajdzie się w nowym miejscu.
Co Jestem obecnie robi:
list = ['a', 'b','c', 'd'];
random.shuffle(list)
list
['c','b','d','a']
Dzięki tej metodzie I przetasować listę, ale wciąż jest to możliwe, aby mieć zmienną kończy się w tym samym miejscu w tym przypadku „b”.
My pożądane wyjście
całkowicie tasuje lista
['c','a','d','b']
I wdzięczni za każdą pomoc. Jestem nowym użytkownikiem Pythona, ale daj mi znać, czy potrzebne są dalsze informacje.
jak duża jest Twoja lista oczekiwać, aby być? z grubsza mówiąc. –
@matiaselgart moja lista będzie zawierać 15 zmiennych. – Dre
Po prostu notatka: Jeśli chcesz, aby każdy element był w prawdziwie losowej pozycji, odrzucanie aranżacji, które nie poruszają każdego elementu, faktycznie zmniejsza "losowość". Bardzo rzadko zdarza się, że sytuacja jest bardziej poprawna/bezpieczna, aby arbitralnie odrzucić dowolny przypadkowy układ; niedopuszczenie, by element utrzymywał tę samą pozycję, ujawnia więcej informacji niż pozwalanie na losowe losowanie. – ShadowRanger