如何利用Python隨機從list中挑選一個元素
在本文中,我們將研究從列表中選擇隨機元素的不同實現方法。在日常專案中,我們經常會遇到這種情形,比如隨機從多種資料增強策略中選擇一種或幾種來提升訓練資料的多樣性。
閒話少說,我們直接開始吧。
為了方便示例,這裡我們假設有一個包含多個水果英文名的列表,並且我們需要從中選擇一種隨機水果進行輸出。
水果名稱列表如下所示:
fruit_name_list = [ 'apple', 'orange', 'banana', 'pear', 'watermelon' ]
random 庫是一個 python的內建庫,因此我們不需要重新安裝它,可以方便地直接匯入。這裡我們將研究使用該庫從列表中選擇隨機元素的 3 種不同方法。
函式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
函式random.choice 將列表作為輸入引數,並從列表中返回一個隨機元素。在上述的例子中,我們可以直接傳遞 列表fruit_name_list作為該函式的引數。
樣例程式碼如下:
winner = random.choice(fruit_name_list) print(winner)
輸出如下:
watermelon
函式random.sample功能類似於函式random.choice,主要區別在於我們可以指定所需的隨機元素的數量。在下面的程式碼樣例中,我們可以得到兩個隨機的水果英文名字。 random.sample 返回值為一個列表。
樣例程式碼如下:
winners = random.sample(fruit_name_list,2) print(winners)
輸出如下:
['banana', 'watermelon']
Secrets 庫優於 Random 庫,因為它更安全。與 random 庫一樣,它也是一個內建的 python 庫,我們不必安裝任何其他依賴項。但是,如果我們使用的是低於3.6 的Python版本,則必須使用pip安裝該模組。
函式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
函式secrets.choice功能類似於函式random.choice,該函式將列表作為輸入引數,並從該列表中返回一個隨機元素。
樣例程式碼如下:
winner = secrets.choice(fruit_name_list) print(winner)
輸出如下:
apple
函式secrets.SystemRandom().sample()功能類似於 random.sample(),該函式接受輸入列表和返回元素個數作為輸入引數,同時該函式返回一個挑選出的隨機元素的列表。
樣例程式碼如下:
winners = secrets.SystemRandom().sample(fruit_name_list,2) print(winners)
輸出如下:
['watermelon', 'orange']
本文介紹了分別使用Random庫以及使用Secrets庫來從列表中隨機挑選一個或多個元素的不同實現方法,並均給出了程式碼示例。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2899996/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java從List中獲取隨機元素Java隨機
- sample, choices: 從list中隨機選擇無重複的元素隨機
- C#怎麼從List集合中隨機取出其中一個值C#隨機
- python如何隨機選擇幾個字串並輸出Python隨機字串
- python中如何隨機分配Python隨機
- Python中如何生成隨機數?Python隨機
- 在Python中,為什麼從dict查詢元素比list快?(待填坑)Python
- 如何得到一個隨機密碼隨機密碼
- [work] python list中數字與一個數相乘Python
- PyThon numpy中array如何轉list?Python
- 使用simplemind如何選擇多個元素
- 一個帶有權重的隨機選擇器隨機
- php生成一個可選位數的隨機碼PHP隨機
- 如何從陣列中隨機取出幾個值組成新的陣列?陣列隨機
- Python如何隨機生成1到100的隨機數?Python隨機
- matlab 從某個範圍內隨機取出一個整數Matlab隨機
- Memcached vs Redis, 挑選哪一個?Redis
- python 中字典dict如何新增元素?Python
- list中for迴圈刪除多個元素為何報錯?
- c++中的查詢list元素C++
- python如何拆分listPython
- python列表中是否存在某個元素Python
- 洗牌演算法擴充(從n個數中隨機m個數)演算法隨機
- Python中的隨機取樣和概率分佈(一)Python隨機概率分佈
- 如何用python輸出每10個一行的元素Python
- 阿里巴巴為什麼這樣強制從List中刪除元素阿里
- Python程式碼閱讀(第10篇):隨機打亂列表元素Python隨機
- Python PK C++,初學者該如何挑選?PythonC++
- java 生成一個隨機整數,範圍從 1 到 10Java隨機
- Java foreach 中List移除元素丟擲ConcurrentMJava
- python生成隨機數、隨機字串Python隨機字串
- CSS中一些利用偽類、偽元素和相鄰元素選擇器的技巧CSS
- JavaScript 陣列隨機不重複元素JavaScript陣列隨機
- python如何將list排序Python排序
- Flutter如何為初始路由新增動畫?頁面中單個元素又如何隨路由動起來?Flutter路由動畫
- 利用偽隨機碼降低EMI隨機
- python爬蟲從ip池獲取隨機IPPython爬蟲隨機
- 如何從10億資料中快速判斷是否存在某一個元素