2013-03-07 11 views
0

예를 들어 0 - 9의 범위를 가진 목록이 있다면. random.seed 함수를 사용하여 해당 숫자 범위에서 임의 선택을 얻으려면 어떻게해야합니까? 또한 결과의 길이를 정의하는 방법.리스트에서 파이썬 무작위 순서

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 모듈 내의 모든 기능과 마찬가지로

>>> 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'] 

, 그냥 평소대로 씨앗을 정의 할 수 있습니다 :

>>> 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

[공정한 주사위 던지기] (http://xkcd.com/221/)를 사용하여 12 개를 선택하시기 바랍니다. – poke

+0

@poke 하하 링크에 감사드립니다! – amehta

+0

씨앗에 신경 쓰지 않는다면. poke의 random.sample()은 갈 방법입니다. – amehta