python 從list中隨機取值的方法
第一種方法(推薦)
適用于隨機取一個值, 返回一個值
import random list1 = ['佛山', '南寧', '北海', '杭州', '南昌', '廈門', '溫州'] a = random.choice(list1) print(a) # 返回一個值
第二種方法
適用于隨機取一組值, 返回一個list
import random list1 = ['佛山', '南寧', '北海', '杭州', '南昌', '廈門', '溫州'] # 隨機返回只有一個值的list a = random.sample(list1, 1) # 隨機返回只有一個值的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)
第四種方法(特殊場景)
這里的特殊場景舉例說明:
抽獎: 從10個人隨機抽出1個有獎的, 按隨機分配, 每個人的概率都是十分之一, 但是否可以在代碼層面, 讓某個人的概率更高些呢?
答案當(dāng)然是可以的了
上碼:
In [1]: import random # 這里給李四個權(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次,也就是李四和趙七兩個人, 沒有其它人什么事了 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]: ['李四', '趙七', '李四', '李四', '趙七'] # 再改一下, 每個人的權(quán)重都不一樣, In [9]: a = {"張三": 2, "李四":1, "王五":3, "趙七": 1, "錢八": 4} # 多執(zhí)行幾次, 會發(fā)現(xiàn)每個人都可能會出現(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中隨機取值的方法的文章就介紹到這了,更多相關(guān)python list隨機取值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
matlab輸出數(shù)據(jù)為excel文件的問題
這篇文章主要介紹了matlab輸出數(shù)據(jù)為excel文件的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08pyqt QPlainTextEdit 中捕獲回車的示例代碼
在PyQt的QPlainTextEdit控件中,可以通過重寫keyPressEvent()函數(shù)來捕獲鍵盤事件,這篇文章主要介紹了pyqt QPlainTextEdit 中捕獲回車,需要的朋友可以參考下2024-03-03談一談數(shù)組拼接tf.concat()和np.concatenate()的區(qū)別
今天小編就為大家分享一篇談?wù)剶?shù)組拼接tf.concat()和np.concatenate()的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02100行Python代碼實現(xiàn)自動搶火車票(附源碼)
又到年底了,相信對于在外地的朋友們來說,火車票是到年底最頭痛的一件事了,但作為程序員的你怎么能一樣呢?快發(fā)揮你的特長,下面這篇文章主要給大家介紹了如果通過100行Python代碼實現(xiàn)自動搶火車票的相關(guān)資料,需要的朋友可以參考下。2018-01-01