python 從list中隨機(jī)取值的方法
第一種方法(推薦)
適用于隨機(jī)取一個(gè)值, 返回一個(gè)值
import randomlist1 = [’佛山’, ’南寧’, ’北海’, ’杭州’, ’南昌’, ’廈門’, ’溫州’]a = random.choice(list1)print(a)# 返回一個(gè)值
第二種方法
適用于隨機(jī)取一組值, 返回一個(gè)list
import randomlist1 = [’佛山’, ’南寧’, ’北海’, ’杭州’, ’南昌’, ’廈門’, ’溫州’]# 隨機(jī)返回只有一個(gè)值的lista = random.sample(list1, 1) # 隨機(jī)返回只有一個(gè)值的listb = random.sample(list1, 3) print(a)print(b)# 返回list
第三種方法(不推薦,效率太慢)
自寫的方法
import randomlist1 = [’佛山’, ’南寧’, ’北海’, ’杭州’, ’南昌’, ’廈門’, ’溫州’]ln = len(list1)a = list1[random.randint(0, ln)]print(a)
第四種方法(特殊場(chǎng)景)
這里的特殊場(chǎng)景舉例說(shuō)明:抽獎(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)重:李四和趙七都為1In [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)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 八種Vue組件間通訊方式合集(推薦)2. GIT相關(guān)-IDEA/ECLIPSE工具配置的教程詳解3. idea設(shè)置代碼格式化的方法步驟4. requestAnimationFrame定時(shí)動(dòng)畫屏幕刷新率節(jié)流示例淺析5. php bugs代碼審計(jì)基礎(chǔ)詳解6. JSP實(shí)現(xiàn)百萬(wàn)富翁猜數(shù)字游戲7. 使用JSP技術(shù)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的在線測(cè)試系統(tǒng)的實(shí)例詳解8. JSP動(dòng)態(tài)網(wǎng)頁(yè)開發(fā)原理詳解9. 秒殺場(chǎng)景的緩存、隊(duì)列、鎖使用Redis優(yōu)化設(shè)計(jì)方案10. ASP中if語(yǔ)句、select 、while循環(huán)的使用方法
