[英]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.