簡體   English   中英

我可以在 random.choices() 中將 k 作為隨機數嗎?

[英]Can I have k as a random number in random.choices()?

我想制作一個隨機列表,而 random.choices 就是這樣做的。 一個例子是

 list = [1,2, 3, 4, 5, 6]

numbers = random.choices(list, k=2)

print("2 random numbers", numbers)

在這種情況下,它將從列表中打印 2 個隨機數,因為 k 為 2,但我希望 k 也是設定范圍內的隨機數,因此將打印列表中不同數量的項目。 我怎么做? 提前致謝!

randint

您可以使用random.randint(a, b)生成一個介於 0 和列表長度之間的數字。

values = [1,2, 3, 4, 5, 6]
k = random.randint(0,len(values))
numbers = random.choices(values, k=k)
print(k, "random numbers", numbers)

請注意, choices從同一個列表中選擇多次,並且可以多次選擇相同的,您可以產生6 random numbers [6, 6, 5, 1, 1, 2]


sample

如果您想要獨特的,請使用random.sample(population, k)

k = random.randint(0,len(values))
numbers = random.sample(values, k=k)

筆記

不要為變量使用內置名稱,例如list 切勿將現有的用於第二個目的

您可能會考慮使用 NumPy,它支持開箱即用的此類功能。

import numpy as np

source = [1,2, 3, 4, 5, 6]

numbers = np.random.choice(source, size=2, replace=False)
print("2 random numbers", numbers)

這將選擇 2 個唯一號碼。 如果要進行替換采樣,請使用replace=True

我傾向於同意@azro,永遠不要為你的變量使用內置名稱,有龍

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM