In this tutorial we will be focusing on how to randomly shuffle the list in python. We will be trying out different ways to shuffle the list in python. one of them being using shuffle() method and other is to select elements in random and shuffle them using choice() function.
- Randomly shuffle the list in python using shuffle() function.
- Randomly shuffle the elements of the list in python using choices() function
- Randomly shuffle the elements of the list in python using sample() function
- shuffle the list in python with pop() and append() function
- shuffle the list in python using index.
- shuffle list to get the same list everytime using random.seed()
Randomly shuffle the list in python using shuffle() function:
We will be shuffling the list in python using shuffle() function. It takes the list as argument and shuffle them randomly as shown below.
# randomly shuffle the list in python with shuffle() function import random List = [1,1,4,3,2,4,1,2,3,4] random.shuffle(List) print (List)
or
# randomly shuffle the list in python with shuffle() function from random import shuffle List = [1,1,4,3,2,4,1,2,3,4] shuffle(List) print(List)
so, the output will be,
output:
[2, 1, 2, 1, 4, 3, 3, 4, 1, 4]
Randomly shuffle the elements of the list in python using choices() function
We will be shuffling the list in python using choices() function. choices() function takes the list as argument and length of the list to be shuffled. As choices() function randomly returns the all the elements of the list which in turn equals to shuffling list randomly as shown below.
# randomly shuffle the list in python with choices() function import random List = [1,1,4,3,2,4,1,2,3,4] # using the choices() method on the # given dataset randomList = random.choices(List, k = len(List)) print(randomList)
so, the output will be,
output:
[1, 1, 3, 3, 1, 1, 4, 2, 4, 1]
Random shuffle the list in python using sample() function:
We will be shuffling the list in python using sample() function. sample() function takes the list as argument and length of the list to be shuffled. As sample() function randomly returns the all the elements of the list which in turn equals to shuffling list randomly as shown below.
# rondomly shuffle the list in python with random.sample() function import random List = [1,1,4,3,2,4,1,2,3,4] randomList = random.sample(List, len(List)) print(randomList)
so, the output will be,
output:
[1, 4, 2, 4, 3, 4, 3, 2, 1, 1]
Random shuffle the list in python with pop() and append() function:
We will be shuffling the list in python using pop() and append() function. We will be selecting the index randomly and deleting the element at that index and then append the deleted element to the list, which in will in turn shuffle all the elements in the list in a roundabout way as shown below.
# # randomly shuffle the list in python with pop() and append() function import random # Assign array List = [1,1,4,3,2,4,1,2,3,4] # Display original array print("Original List: ", List) # Get length of List n = len(List) #repeat the following for n number of times for i in range(n): #select an index randomly j = random.randint(0, n-1) #delete the element at that index. element=List.pop(j) #now append that deleted element to the list List.append(element) print("Shuffled List: ",List)
so, the output will be,
output:
Original List: [1, 1, 4, 3, 2, 4, 1, 2, 3, 4]
Shuffled List: [1, 1, 2, 3, 4, 4, 2, 3, 4, 1]
Randomly shuffle the list in python using index:
We will be using the fisher -Yates shuffle algorithm to shuffle the list in python. This is one of the famous algorithms that is mainly employed to shuffle a sequence of numbers in python. This algorithm just takes the higher index value, and swaps it with current value, this process repeats in a loop till end of the list. Which will result in the shuffled list as shown below.
import random # initializing list List = [1,1,4,3,2,4,1,2,3,4] # Printing original list print ("The original list is : " + str(List)) # using Fisher–Yates shuffle Algorithm # to shuffle a list for i in range(len(List)-1, 0, -1): # Pick a random index from 0 to i j = random.randint(0, i + 1) # Swap arr[i] with the element at random index List[i], List[j] = List[j], List[i] # Printing shuffled list print ("The shuffled list is : " + str(List))
so, the output will be,
output:
The original list is : [1, 1, 4, 3, 2, 4, 1, 2, 3, 4]
The shuffled list is : [4, 4, 1, 3, 1, 1, 2, 4, 2, 3]
Shuffle list to get the same list everytime using random.seed():
random.seed() function will make sure that when refreshed or rerun every time, It will result in the same list. In the below code we have shuffled and generated 3 list. Each time this 3 list will be repeated when we use the same argument inside seed() function as shown below
import random numbers = [1,1,4,3,2,4,1,2,3,4] print("Original list: ", numbers) # shuffle 3 times for i in range(3): # seed PRNG random.seed(4) # shuffle list random.shuffle(numbers) print("result list ", numbers)
so, the output will be,
output:
result list [3, 4, 1, 2, 1, 4, 4, 1, 2, 3]
result list [2, 1, 3, 1, 4, 3, 4, 4, 1, 2]
result list [1, 3, 2, 4, 4, 2, 3, 1, 4, 1]