我想使用回圈生成一個包含 10 個隨機浮點數的串列。之后我想隨機列印其中的 5 個。
我有這個回圈:
import random
for i in range(5):
print(float(random.randint(1,10)
這給了我 1-10 之間的 5 個亂數的輸出。但結果真的是隨機浮動嗎?
有了這個,我并沒有真正用 10 個隨機浮點數填寫一個串列,對嗎?
for a in range(1,11,1):
print(a)
這會更好嗎?據我了解, random.sample 自動創建一個串列。真的嗎?
import random
a = random.sample(range(1,11),10)
print(a)
那里的輸出將是例如: [1, 3, 7, 6, 9, 10, 5, 8, 4, 2]
但它只會以隨機順序給我 1-10。
所以我可以將范圍更改為范圍(1,1000),10)
然后它將創建一個包含 10 個亂數的串列,僅在 1 到 1000 之間。
有針對這個的解決方法嗎?我只是好奇,如果它是無限的,那么我可能會得到一個太長的 10 位數字。
如果我想從隨機填充的串列中選擇 5 個亂數,我嘗試使用此代碼:
import random
a = random.sample(range(1,1000),10)
for a in range(5):
print(a)
但這只給了我:
0
1
2
3
4
我知道它必須與 range(5) 有關,但我假設回圈不會從我創建的串列中選擇數字,對嗎?
有人可以在這里幫助我嗎?
uj5u.com熱心網友回復:
random.sample回傳唯一的隨機元素 - 即,如果您從 10 個元素的串列中采樣 10 個元素 - 所有元素都保證存在
從檔案help(random.sample)-
random.Random 實體的 sample(population, k) 方法 從總體序列或集合中選擇 k 個唯一的隨機元素。
要重復采樣,您可以使用以下choices功能 -
從檔案 -help(random.choices)
隨機選擇(人口,權重=無,*,cum_weights=無,k=1)方法。隨機實體回傳ak大小的人口元素串列,選擇替換。
例如,
b = random.choices(range(1, 11), k=10)
print(b)
# [1, 10, 9, 8, 6, 1, 6, 4, 9, 3]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/489187.html
