Python random.shuffle() 方法



Python random.shuffle() 方法用于对列表的顺序进行随机排序。To Shuffle a list of objects 的意思是使用 Python 更改给定序列的元素的位置。该方法用于修改原始列表,它不会返回新的列表。

这个方法不能直接访问,所以我们需要导入 shuffle 模块,然后我们需要使用 random 静态对象调用这个函数。

语法

以下是 Python random.shuffle() 方法的语法 -


 random.shuffle(lst)

参数

以下是参数 -

  • lst − 这是一个列表。

返回值

此方法不返回任何值。

示例 1

以下示例显示了 Python random.shuffle() 方法的用法。这里,一个列表作为参数传递给 shuffle() 方法。


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

当我们运行上述程序时,它会产生以下结果——

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

示例 2

在下面给出的示例中,一个列表包含 Sports name,另一个列表包含其各自的球员。现在,我们通过保持相同的 shuffle 顺序来对这两个列表进行 shuffle。


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])

在执行上述代码时,我们得到以下输出 -

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

示例 3

在以下示例中,我们将创建一个字符串 'QikepucomPoint'。然后我们将字符串转换为列表。之后,我们使用 shuffle() 方法随机化字符串字符。此后,我们再次将列表转换为字符串并打印结果。


import random
string = "QikepucomPoint"
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)

以下是上述代码的输出 -

The string is: QikepucomPoint
The list after shuffling is: oiQikemPntpuco

示例 4

在这里,range() 函数用于检索数字序列 'num'。然后创建一个数字范围的列表。此后,这个 'num' 作为参数传递给 shuffle() 方法。


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)

上述代码的输出如下 -

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