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)文章
matlab輸出數(shù)據(jù)為excel文件的問題
這篇文章主要介紹了matlab輸出數(shù)據(jù)為excel文件的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
pyqt QPlainTextEdit 中捕獲回車的示例代碼
在PyQt的QPlainTextEdit控件中,可以通過重寫keyPressEvent()函數(shù)來捕獲鍵盤事件,這篇文章主要介紹了pyqt QPlainTextEdit 中捕獲回車,需要的朋友可以參考下2024-03-03
談一談數(shù)組拼接tf.concat()和np.concatenate()的區(qū)別
今天小編就為大家分享一篇談?wù)剶?shù)組拼接tf.concat()和np.concatenate()的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02
100行Python代碼實(shí)現(xiàn)自動(dòng)搶火車票(附源碼)
又到年底了,相信對(duì)于在外地的朋友們來說,火車票是到年底最頭痛的一件事了,但作為程序員的你怎么能一樣呢?快發(fā)揮你的特長(zhǎng),下面這篇文章主要給大家介紹了如果通過100行Python代碼實(shí)現(xiàn)自動(dòng)搶火車票的相關(guān)資料,需要的朋友可以參考下。2018-01-01
Python動(dòng)態(tài)強(qiáng)類型解釋型語言原理解析
這篇文章主要介紹了Python動(dòng)態(tài)強(qiáng)類型解釋型語言原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Python棧的實(shí)現(xiàn)方法示例【列表、單鏈表】
這篇文章主要介紹了Python棧的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Python基于列表、單鏈表定義棧的相關(guān)操作技巧,需要的朋友可以參考下2020-02-02

