5 回答

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個贊
我相信您需要使用隨機(jī)包中的函數(shù)choices
,您只是缺少“s”!此外,您還需要添加k
參數(shù)來說明您想要采樣多少個值:
values = [1,2,3,4,5] print(random.choices(values,k=10))
輸出:
[2, 1, 4, 2, 2, 4, 1, 2, 1, 4]
在您的示例中,您需要將 k 固定為 100。

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個贊
使用random.choices
:
from random import choices rand_list = choices(range(1,6),k=100)
這k
是隨機(jī)數(shù)的數(shù)量。

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個贊
random.choices
正是您所需要的:
from?random?import?choices rand_list?=?choices(range(1,?6),?k=100)

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個贊
你可以使用理解
rand_list?=?[(random.randrange(5)?+?1)?for?x?in?range(100)]
如果您有較重的函數(shù)(可能是復(fù)雜的哈?;蚍祷貥O大的值),則可以使用生成器延遲值的創(chuàng)建。這可以節(jié)省內(nèi)存并允許在創(chuàng)建整個列表之前進(jìn)行處理。您可以在對值進(jìn)行計(jì)數(shù)后中斷,或者如果只需要特定數(shù)量(而不是連續(xù)過程),則可以迭代其中的一部分。
import itertools
import random
def gen():
? ? while True:
? ? ? ? yield random.randrange(5) + 1
max_iterations = 100
for value in itertools.islice(gen(), max_iterations):
? ? do_some_opertation(value)
添加回答
舉報