2015-11-18 58 views
2
rand_arr=[0, ] 
def rand_key_gen(arr): 
    for x in range(0, 25): 
     rand_arr[x] = random.choice(arr) 

這是不完整的。但這裏的問題是我可能會再次獲得相同的價值。我如何規避這種情況?我如何從Python中的另一個數組中隨機填充數組?

+0

因此,爲了澄清,你希望'arr'中的每個項目在'rand_arr'中出現一次? (也用於Python中的記錄,他們被稱爲列表) – SuperBiasedMan

回答

2

您可以使用random.shuffle從原始列表中實現混洗列表。但是,由於它會改變原始列表,請首先製作原始列表的副本。

import random 
shuffled_lst=lst[:] 
random.shuffle(shuffled_lst) 
print "Reshuffled list : ", shuffled_lst 
2

你會使用random.sample。它將從arr選擇所需數量的非重複元素:

import random 
rand_arr = [0] 
def rand_key_gen(arr): 
    rand_arr[:] = random.sample(arr, 25) 

沒有必要的循環,因爲你可以通過修改slice assigmentrand_arr

1

怎麼樣使用random.shuffle

from random import shuffle 

new_list = old_list[:] # copy 
shuffle(new_list) 
print(new_list) 

如果你想有一個較小的列表,你可以用切片。

相關問題