python 파이썬 리스트 - 목록에서 임의로 항목을 선택하는 방법은 무엇입니까?





7 Answers

인덱스가 필요하면 random.randrange 사용하십시오.

from random import randrange
random_index = randrange(len(foo))
print(foo[random_index])
랜덤 추출

다음 목록이 있다고 가정합니다.

foo = ['a', 'b', 'c', 'd', 'e']

이 목록에서 임의로 항목을 검색하는 가장 간단한 방법은 무엇입니까?




파이썬 3.6 secrets 모듈을 사용할 수 있습니다. 암호 모듈은 암호 또는 보안 용도의 random 모듈보다 바람직합니다.

목록에서 무작위 요소를 인쇄하려면 :

import secrets
foo = ['a', 'b', 'c', 'd', 'e']
print(secrets.choice(foo))

임의의 인덱스를 인쇄하려면 :

print(secrets.randbelow(len(foo)))

자세한 내용은 PEP 506을 참조하십시오.




이것은 무작위 색인을 정의하는 변수가있는 코드입니다.

import random

foo = ['a', 'b', 'c', 'd', 'e']
randomindex = random.randint(0,len(foo)-1) 
print (foo[randomindex])
## print (randomindex)

이것은 변수가없는 코드입니다.

import random

foo = ['a', 'b', 'c', 'd', 'e']
print (foo[random.randint(0,len(foo)-1)])

그리고 이것은 가장 짧고 똑똑한 방법입니다.

import random

foo = ['a', 'b', 'c', 'd', 'e']
print(random.choice(foo))

(파이썬 2.7)




색인이 필요한 경우 다음을 사용하십시오.

import random
foo = ['a', 'b', 'c', 'd', 'e']
print int(random.random() * len(foo))
print foo[int(random.random() * len(foo))]

random.choice가 같은 일을합니다 :)




numpy.random.choice 해결책 : numpy.random.choice

이 질문에 대해서는 받아 들인 대답 ( import random; random.choice() )과 똑같이 작동하지만 프로그래머가 이미 저와 같은 numpy 가져 numpy 수도 있기 때문에 추가했습니다. 또한 두 메소드간에 약간의 차이점 이 있습니다. 실제 사용 사례와 관련 될 수 있습니다.

import numpy as np    
np.random.choice(foo) # randomly selects a single item

재현성을 위해 다음을 할 수 있습니다.

np.random.seed(123)
np.random.choice(foo) # first call will always return 'c'

array 로 리턴 된 하나 이상의 항목의 샘플의 경우 size 인수를 전달하십시오.

np.random.choice(foo, 5)          # sample with replacement (default)
np.random.choice(foo, 5, False)   # sample without replacement



다음 코드는 동일한 항목을 생성해야하는지 여부를 보여줍니다. 추출 할 샘플 수를 지정할 수도 있습니다.
sample 메서드는 원래 모집단을 변경하지 않고 채우기의 요소가 포함 된 새 목록을 반환합니다. 결과 목록은 모든 하위 슬라이스가 유효한 무작위 샘플이되도록 선택 순서에 있습니다.

import random as random
random.seed(0)  # don't use seed function, if you want different results in each run
print(random.sample(foo,3))  # 3 is the number of sample you want to retrieve

Output:['d', 'e', 'a']



나는 그것을하기 위해 이것을했다 :

import random
pick = ['Random','Random1','Random2','Random3']
print  (pick[int(random.random() * len(pick))])



Related