from random import randint
k=[]
for i in range(10):
k.append(randint(1,5))
k.sort()
print(k)
輸出將是正確的,但有時它不包括 1 到 5 的值。例如,可能 k=[2,3,3,3,3,4,4,5,5,5] 并且不包括 1。我需要包括所有數字
uj5u.com熱心網友回復:
1 到 5 之間的 10 個亂數意味著一個串列[1,1,1,1,1,1,1,1,1,1]是一個有效的結果 - 這不太可能。
如果您需要確保其中有 1 到 5 個,請先[1,2,3,4,5]添加 5 個亂數:
from random import choices
k = [1,2,3,4,5]
k.extend( choices(range(1,6), k=5)) # add 5 more random numbers
k.sort()
print(k)
要得到
[1,1,2,2,3,4,4,5,5,5] # etc.
該部分choices(range(1,6), k=5) 回傳 1-5 范圍內的 5 個數字的串列,無需回圈。
uj5u.com熱心網友回復:
使用NumPy庫可以優先于 pythonic random使用它;在大量資料中可能會更快:
import numpy as np
nums = np.arange(1, 6) # create integer numbers from 1 to (6 - 1) to ensure 1 to 5 will be contained
ran = np.random.random_integers(1, 6, 5) # create 5 random integers from 1 to (6 - 1)
combine = np.concatenate((nums, ran)) # combining aforementioned two arrays together
np.random.shuffle(combine) # shuffling the created combined array
這將得到類似 的陣列[4 5 4 2 5 1 3 4 2 1],其中包含從 1 到 5 的所有整數。此陣列可以通過 轉換為串列combine.tolist()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/368797.html
上一篇:在Prolog中提取其他元組成員
