title | type | tags | cover | dateModified | ||
---|---|---|---|---|---|---|
Shuffle list |
snippet |
|
tent-stars |
2020-11-02 19:28:35 +0200 |
Randomizes the order of the values of an list, returning a new list.
- Uses the Fisher-Yates algorithm to reorder the elements of the list.
random.shuffle
provides similar functionality to this snippet.
from copy import deepcopy
from random import randint
def shuffle(lst):
temp_lst = deepcopy(lst)
m = len(temp_lst)
while (m):
m -= 1
i = randint(0, m)
temp_lst[m], temp_lst[i] = temp_lst[i], temp_lst[m]
return temp_lst
foo = [1, 2, 3]
shuffle(foo) # [2, 3, 1], foo = [1, 2, 3]