rand_arr=[0, ]
def rand_key_gen(arr):
for x in range(0, 25):
rand_arr[x] = random.choice(arr)
這是不完整的。但這裏的問題是我可能會再次獲得相同的價值。我如何規避這種情況?我如何從Python中的另一個數組中隨機填充數組?
rand_arr=[0, ]
def rand_key_gen(arr):
for x in range(0, 25):
rand_arr[x] = random.choice(arr)
這是不完整的。但這裏的問題是我可能會再次獲得相同的價值。我如何規避這種情況?我如何從Python中的另一個數組中隨機填充數組?
您可以使用random.shuffle
從原始列表中實現混洗列表。但是,由於它會改變原始列表,請首先製作原始列表的副本。
import random
shuffled_lst=lst[:]
random.shuffle(shuffled_lst)
print "Reshuffled list : ", shuffled_lst
你會使用random.sample
。它將從arr
選擇所需數量的非重複元素:
import random
rand_arr = [0]
def rand_key_gen(arr):
rand_arr[:] = random.sample(arr, 25)
沒有必要的循環,因爲你可以通過修改slice assigmentrand_arr
。
怎麼樣使用random.shuffle
:
from random import shuffle
new_list = old_list[:] # copy
shuffle(new_list)
print(new_list)
如果你想有一個較小的列表,你可以用切片。
因此,爲了澄清,你希望'arr'中的每個項目在'rand_arr'中出現一次? (也用於Python中的記錄,他們被稱爲列表) – SuperBiasedMan