Python 中的打亂

重排是指元素以隨機的順序重新排列,這意味着在排列元素時不考慮特定的順序。

在本教程中,我們將學習如何使用 Python 打亂列表元素。

我們將使用以下不同的方法來打亂

  1. 使用費希爾-耶茨打亂算法
  2. 使用打亂()
  3. 使用樣品()
  4. 隨機選擇元素,然後將它們追加到列表中

我們將詳細討論每種方法。

讓我們從第一個開始,


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

解釋

讓我們了解一下我們在上面的程序中做了什麼。

  1. 第一步,我們導入了random模塊。
  2. 之後,我們有一個包含不同數值的初始化列表。
  3. 在下一步中,我們使用 for循環,然後隨機選擇一個元素,然後將其與隨機索引處的元素交換。
  4. 最後,我們在輸出中顯示了混洗的列表。

在第二種方法中,我們將看到如何使用 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]

解釋

讓我們了解一下我們在上面的程序中做了什麼,

  1. 第一步,我們導入了random模塊。
  2. 之後,我們有一個包含不同數值的初始化列表。
  3. 在下一步中,我們使用 shuffle() 並傳遞‘list _ value 1’作為參數。
  4. 最後,我們在輸出中顯示了混洗的列表。

在第三種方法中,我們將使用 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]

解釋

是時候了解上面的程序了-

  1. 第一步,我們導入了random模塊。
  2. 之後,我們有一個包含不同數值的初始化列表。
  3. 在下一步中,我們使用樣本()並傳遞‘list _ value 1’和列表長度作為其參數。
  4. 最後,我們在輸出中顯示了混洗的列表。

最後,是時候討論最後一種方法了,這確實是一種有趣的方法,讓我們看看如何…


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]

解釋

現在,讓我們看看這段代碼的解釋,

  1. 第一步,我們導入了random模塊。
  2. 之後,我們有一個包含不同數值的初始化列表,然後計算列表的長度。
  3. 在下一步中,我們使用樣本()並傳遞‘list _ value 1’和列表長度作為其參數。
  4. 現在我們已經使用了一個循環,它隨機選擇一個元素,刪除它,然後將它追加到列表中。
  5. 最後,我們在輸出中顯示了混洗的列表。

在本教程中,我們學習了 Python 中打亂列表元素的不同方法。


原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/126691.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
簡單一點的頭像簡單一點
上一篇 2024-10-03 23:09
下一篇 2024-10-03 23:09

相關推薦

  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python編程二級證書考試相關現已可以上網購買

    計算機二級Python考試是一項重要的國家級認證考試,也是Python編程的入門考試。與其他考試一樣,Python編程二級證書的考生需要進入正式考試,而為了備考,這篇文章將詳細介紹…

    編程 2025-04-29

發表回復

登錄後才能評論