Python random.shuffle() Method



The Python random.shuffle() method is used to shuffle the order of a list. To Shuffle a list of objects means to change the position of the elements of the given sequence using Python. This method is used to modify the original list, it does not return a new list.

Note − This method is not accessible directly, so we need to import shuffle module and then we need to call this function using random static object.

Syntax

Following is the syntax of Python random.shuffle() method −

random.shuffle(lst)

Parameters

  • lst − This is a list.

Return Value

This method does not return any value.

Example

The following example shows the usage of the Python random.shuffle() method. Here a list is passed as an argument to the shuffle() method.

import random
list = [20, 16, 10, 5];
random.shuffle(list)
print ("Reshuffled list : ",  list)
random.shuffle(list)
print ("Reshuffled list : ",  list)

When we run above program, it produces following result −

Reshuffled list :  [16, 5, 10, 20]
Reshuffled list :  [16, 5, 20, 10]

Example

In the example given below one list contains Sports name and the other list contains its respective players. Now, we are shuffling these two lists by maintaining the same shuffle order.

import random
# the first list of sports name
Sports = ['Cricket', 'Tennis', 'Badminton', 'Hockey']
# the second list of sports players
Player = ['Sachin Tendulkar', 'Roger Federer', 'PV Sindhu', 'Dhyan Chand']
# printing the list before shuffle
print("Sports Names before shuffling are: ", Sports)
print("Respective Sports Players before shuffling are: ", Player)
# Shuffling both the lists in same order
mappingIndex = list(zip(Sports, Player))
random.shuffle(mappingIndex)
# making separate list 
List1_sportsName, List2_Players = zip(*mappingIndex)
# printing the list after shuffle
print("Sports Names after shuffling are: ", List1_sportsName)
print("Sports Players after shuffling are: ", List2_Players)
# Sports name and Player at the given index is
print('The sports player of',List1_sportsName[2],'is', List2_Players[2])

While executing the above code we get the following output −

Sports Names before shuffling are:  ['Cricket', 'Tennis', 'Badminton', 'Hockey']
Respective Sports Players before shuffling are:  ['Sachin Tendulkar', 'Roger Federer', 'PV Sindhu', 'Dhyan Chand']
Sports Names after shuffling are:  ('Cricket', 'Hockey', 'Badminton', 'Tennis')
Sports Players after shuffling are:  ('Sachin Tendulkar', 'Dhyan Chand', 'PV Sindhu', 'Roger Federer')
The sports player of Badminton is PV Sindhu

Example

In the following example we are creating a string 'TutorialsPoint'. Then we convert the string to the list. After that we use the shuffle() method to randomize the string characters. Thereafter, we again convert the list to the string and print the result.

import random
string = "TutorialsPoint"
print('The string is:',string)
# converting the string to list
con_str = list(string)
# shuffling the list
random.shuffle(con_str)
# convert list to string
res_str = ''.join(con_str)
# The shuffled list
print('The list after shuffling is:',res_str)

Following is an output of the above code −

The string is: TutorialsPoint
The list after shuffling is: nolroiisPTtuta

Example

In here, the range() function is used to retrieve a sequence of numbers 'num'. Then a list of the range of numbers is created. Thereafter, this 'num' is passed as an argument to the shuffle() method.

import random
# creating a list of range of integers
num = list(range(15))
# Shuffling the range of integers
random.shuffle(num)
print('The shuffled integers are:',num)

Output of the above code is as follows −

The shuffled integers are: [8, 6, 3, 12, 9, 7, 0, 10, 5, 14, 13, 4, 2, 11, 1]
python_numbers.htm
Advertisements