Nest all content into snippets
This commit is contained in:
32
snippets/python/s/shuffle.md
Normal file
32
snippets/python/s/shuffle.md
Normal file
@ -0,0 +1,32 @@
|
||||
---
|
||||
title: Shuffle list
|
||||
type: snippet
|
||||
language: python
|
||||
tags: [list,random]
|
||||
cover: tent-stars
|
||||
dateModified: 2020-11-02T19:28:35+02:00
|
||||
---
|
||||
|
||||
Randomizes the order of the values of an list, returning a new list.
|
||||
|
||||
- Uses the [Fisher-Yates algorithm](https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle) to reorder the elements of the list.
|
||||
- [`random.shuffle`](https://docs.python.org/3/library/random.html#random.shuffle) provides similar functionality to this snippet.
|
||||
|
||||
```py
|
||||
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
|
||||
```
|
||||
|
||||
```py
|
||||
foo = [1, 2, 3]
|
||||
shuffle(foo) # [2, 3, 1], foo = [1, 2, 3]
|
||||
```
|
||||
Reference in New Issue
Block a user