2013-03-07 7 views
0

Если бы у меня был список, который варьировался от 0 до 9, например. Как использовать функцию random.seed для получения случайного выбора из этого диапазона чисел? Также как я определяю длину результатов.случайная последовательность python из списка

import random 

l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
a = 10 
random.seed(a) 
length = 4 

# somehow generate random l using the random.seed() and the length. 
random_l = [2, 6, 1, 8] 
+0

Вы бы не; это не то, что делает 'random.seed()'. Вас больше интересует, что делает 'random.seed()' * на самом деле *, или вас больше интересует создание случайного списка? –

+0

Разрешены ли дубликаты? – GWW

ответ

8

Использование random.sample. Она работает на любой последовательности:

>>> random.sample([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 4) 
[4, 2, 9, 0] 
>>> random.sample('even strings work', 4) 
['n', 't', ' ', 'r'] 

Как со всеми функциями в пределах random модуля, вы можете определить семена так же, как вы это обычно:

>>> import random 
>>> lst = list(range(10)) 
>>> random.seed('just some random seed') # set the seed 
>>> random.sample(lst, 4) 
[6, 7, 2, 1] 
>>> random.sample(lst, 4) 
[6, 3, 1, 0] 
>>> random.seed('just some random seed') # use the same seed again 
>>> random.sample(lst, 4) 
[6, 7, 2, 1] 
>>> random.sample(lst, 4) 
[6, 3, 1, 0] 
+0

Как определить семя с помощью sample()? – justachap

+0

@justachap См. Мое редактирование. – poke

0
import random 

list = [] # your list of numbers that range from 0 -9 

# this seed will always give you the same pattern of random numbers. 
random.seed(12) # I randomly picked a seed here; 

# repeat this as many times you need to pick from your list 
index = random.randint(0,len(list)) 
random_value_from_list = list[index] 
+1

Надеюсь, вы выбрали 12, используя [справедливый бросок кубика] (http://xkcd.com/221/). – poke

+0

@poke ha ha Спасибо за ссылку! – amehta

+0

Если вы не заботитесь о семенах. poke's random.sample() - это способ пойти – amehta

Смежные вопросы