程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

在Python中如何隨機從list中挑選一個元素

編輯:Python

1. 引言

在本文中,我們將研究從列表中選擇隨機元素的不同實現方法。在日常項目中,我們經常會遇到這種情形,比如隨機從多種數據增強策略中選擇一種或幾種來提升訓練數據的多樣性。
閒話少說,我們直接開始吧。 :)

2. 舉個栗子

為了方便示例,這裡我們假設有一個包含多個水果英文名的列表,並且我們需要從中選擇一種隨機水果進行輸出。水果名稱列表如下所示:

fruit_name_list = [
'apple',
'orange',
'banana',
'pear',
'watermelon'
]

3. 使用Random庫

random 庫是一個 python的內置庫,因此我們不需要重新安裝它,可以方便地直接導入。這裡我們將研究使用該庫從列表中選擇隨機元素的 3 種不同方法。

3.1 隨機下標

函數random.randrange(num_items)用於返回介於區間0到num_items-1之間的一個隨機數,如果我們得到一個列表的隨機下標,進而我們就可以方便的得到該列表中的一個隨機元素。

樣例代碼如下:

import random
num_items = len(fruit_name_list)
random_index = random.randrange(num_items)
winner = fruit_name_list[random_index]
print(winner)

輸出如下:

orange

3.2 隨機選擇單個元素

函數random.choice 將列表作為輸入參數,並從列表中返回一個隨機元素。在上述的例子中,我們可以直接傳遞 列表fruit_name_list作為該函數的參數。

樣例代碼如下:

winner = random.choice(fruit_name_list)
print(winner)

輸出如下:

watermelon

3.3 隨機選擇多個元素

函數random.sample功能類似於函數random.choice,主要區別在於我們可以指定所需的隨機元素的數量。在下面的代碼樣例中,我們可以得到兩個隨機的水果英文名字。 random.sample 返回值為一個列表。

樣例代碼如下:

 winners = random.sample(fruit_name_list,2)
print(winners)

輸出如下:

['banana', 'watermelon']

4. 使用Secrets庫

Secrets 庫優於 Random 庫,因為它更安全。與 random 庫一樣,它也是一個內置的 python 庫,我們不必安裝任何其他依賴項。但是,如果我們使用的是低於3.6 的Python版本,則必須使用pip安裝該模塊。

4.1 隨機下標

函數secrets.randbelow的功能類似於random.randrange。使用該函數我們可以得到一個介於 0 和 num_items - 1 之間的隨機索引,進而使用該索引來方便地訪問我們的水果英文名列表中的元素。

樣例代碼如下:

import secrets
num_items = len(fruit_name_list)
random_index = secrets.randbelow(num_items)
winner = fruit_name_list[random_index]
print(winner)

輸出如下:

watermelon

4.2 隨機選擇單個元素

函數secrets.choice功能類似於函數random.choice,該函數將列表作為輸入參數,並從該列表中返回一個隨機元素。

樣例代碼如下:

winner = secrets.choice(fruit_name_list)
print(winner)

輸出如下:

apple

4.3 隨機選擇多個元素

函數secrets.SystemRandom().sample()功能類似於 random.sample(),該函數接受輸入列表和返回元素個數作為輸入參數,同時該函數返回一個挑選出的隨機元素的列表。

樣例代碼如下:

winners = secrets.SystemRandom().sample(fruit_name_list,2)
print(winners)

輸出如下:

['watermelon', 'orange']

5. 總結

本文介紹了分別使用Random庫以及使用Secrets庫來從列表中隨機挑選一個或多個元素的不同實現方法,並均給出了代碼示例。

您學廢了嗎?

參考

關注公眾號《AI算法之道》,獲取更多AI算法資訊。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved