重排是指元素以隨機的順序重新排列,這意味着在排列元素時不考慮特定的順序。
在本教程中,我們將學習如何使用 Python 打亂列表元素。
我們將使用以下不同的方法來打亂
- 使用費希爾-耶茨打亂算法
- 使用打亂()
- 使用樣品()
- 隨機選擇元素,然後將它們追加到列表中
我們將詳細討論每種方法。
讓我們從第一個開始,
# using Fisher-Yates shuffle Algorithm to shuffle a list
import random
# initializing the list
list_values1 = [11,20,19,43,22,10]
# Printing the list
print ("The initialized list is: ",(list_values1))
for i in range(len(list_values1)-1, 0, -1):
# choosing a random index from 0 to i
k = random.randint(0, i + 1)
list_values1[i], list_values1[k] = list_values1[k], list_values1[i]
# Printing the shuffled list
print ("The shuffled list is : ",(list_values1))
輸出:
The initialized list is : [11, 20, 19, 43, 22, 10]
The shuffled list is : [11, 43, 20, 19, 10, 22]
解釋
讓我們了解一下我們在上面的程序中做了什麼。
- 第一步,我們導入了
random模塊。 - 之後,我們有一個包含不同數值的初始化列表。
- 在下一步中,我們使用
for循環,然後隨機選擇一個元素,然後將其與隨機索引處的元素交換。 - 最後,我們在輸出中顯示了混洗的列表。
在第二種方法中,我們將看到如何使用 shuffle() 來對我們列表的元素進行 shuffle。
考慮下面給出的程序-
import random
# initializing the list
list_values1 = [11,20,19,43,22,10]
# Printing the list
print ("The initialized list is : ",(list_values1))
#using shuffle()
random.shuffle(list_values1)
# Printing the shuffled list
print ("The shuffled list is : ",(list_values1))
輸出:
The initialized list is : [11, 20, 19, 43, 22, 10]
The shuffled list is : [22, 10, 20, 11, 19, 43]
解釋
讓我們了解一下我們在上面的程序中做了什麼,
- 第一步,我們導入了
random模塊。 - 之後,我們有一個包含不同數值的初始化列表。
- 在下一步中,我們使用 shuffle() 並傳遞『list _ value 1』作為參數。
- 最後,我們在輸出中顯示了混洗的列表。
在第三種方法中,我們將使用 random.sample() 來做同樣的事情。
下面的程序說明了如何做到這一點
import random
# initializing the list
list_values1 = [11,20,19,43,22,10]
# Printing the list
print ("The initialized list is : ",(list_values1))
#using random.sample()
res_list=random.sample(list_values1,len(list_values1))
# Printing the shuffled list
print ("The shuffled list is : ",(res_list))
輸出:
The initialized list is : [11, 20, 19, 43, 22, 10]
The shuffled list is : [43, 20, 19, 11, 10, 22]
解釋
是時候了解上面的程序了-
- 第一步,我們導入了
random模塊。 - 之後,我們有一個包含不同數值的初始化列表。
- 在下一步中,我們使用樣本()並傳遞『list _ value 1』和列表長度作為其參數。
- 最後,我們在輸出中顯示了混洗的列表。
最後,是時候討論最後一種方法了,這確實是一種有趣的方法,讓我們看看如何…
import random
# initializing the list
list_values1 = [11,20,19,43,22,10]
# Printing the list
print ("The initialized list is: ",(list_values1))
len_list=len(list_values1)
for i in range(len_list):
k=random.randint(0,len_list-1)
e=list_values1.pop(k)
list_values1.append(e)
# Printing the shuffled list
print ("The shuffled list is : ",(list_values1))
輸出:
The initialized list is : [11, 20, 19, 43, 22, 10]
The shuffled list is : [19, 22, 20, 43, 10, 11]
解釋
現在,讓我們看看這段代碼的解釋,
- 第一步,我們導入了
random模塊。 - 之後,我們有一個包含不同數值的初始化列表,然後計算列表的長度。
- 在下一步中,我們使用樣本()並傳遞『list _ value 1』和列表長度作為其參數。
- 現在我們已經使用了一個循環,它隨機選擇一個元素,刪除它,然後將它追加到列表中。
- 最後,我們在輸出中顯示了混洗的列表。
在本教程中,我們學習了 Python 中打亂列表元素的不同方法。
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/126691.html
微信掃一掃
支付寶掃一掃