python 從list中隨機(jī)取值的方法
第一種方法(推薦)
適用于隨機(jī)取一個(gè)值, 返回一個(gè)值
import random list1 = ['佛山', '南寧', '北海', '杭州', '南昌', '廈門', '溫州'] a = random.choice(list1) print(a) # 返回一個(gè)值
第二種方法
適用于隨機(jī)取一組值, 返回一個(gè)list
import random list1 = ['佛山', '南寧', '北海', '杭州', '南昌', '廈門', '溫州'] # 隨機(jī)返回只有一個(gè)值的list a = random.sample(list1, 1) # 隨機(jī)返回只有一個(gè)值的list b = random.sample(list1, 3) print(a) print(b) # 返回list
第三種方法(不推薦,效率太慢)
自寫的方法
import random list1 = ['佛山', '南寧', '北海', '杭州', '南昌', '廈門', '溫州'] ln = len(list1) a = list1[random.randint(0, ln)] print(a)
第四種方法(特殊場(chǎng)景)
這里的特殊場(chǎng)景舉例說明:
抽獎(jiǎng): 從10個(gè)人隨機(jī)抽出1個(gè)有獎(jiǎng)的, 按隨機(jī)分配, 每個(gè)人的概率都是十分之一, 但是否可以在代碼層面, 讓某個(gè)人的概率更高些呢?
答案當(dāng)然是可以的了
上碼:
In [1]: import random
# 這里給李四個(gè)權(quán)重為1,看看有什么結(jié)果
In [2]: a = {"張三": 0, "李四":1, "王五":0, "趙七": 0, "錢八": 0}
# 取5次, 每次都是李四,
In [3]: random.choices(list(a.keys()), weights=list(a.values()), k=5)
Out[3]: ['李四', '李四', '李四', '李四', '李四']
# 取1次, 當(dāng)然就是李四了
In [4]: random.choices(list(a.keys()), weights=list(a.values()), k=1)
Out[4]: ['李四']
# 改下權(quán)重:李四和趙七都為1
In [5]: a = {"張三": 0, "李四":1, "王五":0, "趙七": 1, "錢八": 0}
# 取5次,也就是李四和趙七兩個(gè)人, 沒有其它人什么事了
In [6]: random.choices(list(a.keys()), weights=list(a.values()), k=5)
Out[6]: ['李四', '李四', '李四', '趙七', '李四']
In [7]: random.choices(list(a.keys()), weights=list(a.values()), k=5)
Out[7]: ['趙七', '李四', '李四', '李四', '趙七']
In [8]: random.choices(list(a.keys()), weights=list(a.values()), k=5)
Out[8]: ['李四', '趙七', '李四', '李四', '趙七']
# 再改一下, 每個(gè)人的權(quán)重都不一樣,
In [9]: a = {"張三": 2, "李四":1, "王五":3, "趙七": 1, "錢八": 4}
# 多執(zhí)行幾次, 會(huì)發(fā)現(xiàn)每個(gè)人都可能會(huì)出現(xiàn), 只是出現(xiàn)的概率完全不一樣了, 錢八出現(xiàn)次數(shù)最多.
In [10]: random.choices(list(a.keys()), weights=list(a.values()), k=2)
Out[10]: ['王五', '趙七']
In [11]: random.choices(list(a.keys()), weights=list(a.values()), k=2)
Out[11]: ['王五', '王五']
到此這篇關(guān)于python 從list中隨機(jī)取值的方法的文章就介紹到這了,更多相關(guān)python list隨機(jī)取值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
深入理解Python虛擬機(jī)中常見魔術(shù)方法的使用
本文主要給大家介紹在 python 當(dāng)中與數(shù)學(xué)計(jì)算相關(guān)的一些常見的魔術(shù)方法,是在很多科學(xué)計(jì)算的包當(dāng)中都使用到的魔術(shù)方法,感興趣的小伙伴可以了解一下2023-05-05
詳解有關(guān)PyCharm安裝庫(kù)失敗的問題的解決方法
這篇文章主要介紹了詳解有關(guān)PyCharm安裝庫(kù)失敗的問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
Python實(shí)現(xiàn)Opencv cv2.Canny()邊緣檢測(cè)
這篇博客將介紹Canny邊緣檢測(cè)的概念,并利用cv2.Canny()實(shí)現(xiàn)邊緣檢測(cè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
Python基類函數(shù)的重載與調(diào)用實(shí)例分析
這篇文章主要介紹了Python基類函數(shù)的重載與調(diào)用方法,實(shí)例分析了Python中基類函數(shù)的重載及調(diào)用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01
分解oracle存儲(chǔ)過程或函數(shù)調(diào)試過程步驟
這篇文章主要介紹了調(diào)試oracle存儲(chǔ)過程或函數(shù)過程步驟,文中附含詳細(xì)的圖文操作步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-09-09
numpy系列之?dāng)?shù)組重塑的實(shí)現(xiàn)
本文主要介紹了numpy數(shù)組重塑。所謂數(shù)組重塑就是更改數(shù)組的形狀,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
Python圖像處理庫(kù)crop()函數(shù)?thumbnail方法使用詳解
這篇文章主要為大家介紹了Python圖像處理庫(kù)crop()函數(shù)?thumbnail方法使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04

