Coding/Python
[Python] 리스트에서 랜덤으로 추출하기
junedev
2019. 11. 7. 15:26
리스트에서 랜덤 추출하기
파이썬에서 리스트 내의 요소를 랜덤으로 추출하는 것에는 세가지 방법이 있습니다.
우선, 세 가지 다 random 모듈을 import 해주어야 합니다.
# 공통
import random
리스트 내에서 1개만 랜덤으로 추출하기
리스트에서 요소를 빼내는 메소드는 choice, sample 등이 있습니다.
그 중, choice는 리스트에서 한 가지 요소를 랜덤으로 추출해옵니다.
li = [1, 2, 3]
choiceList = random.choice(li)
리스트에서 여러 가지를 랜덤으로 추출하기(중복 허용 X)
random 모듈의 sample 메소드는 중복을 허용하지 않고, 리스트 내에서 정한 숫자만큼 랜덤으로 추출해 옵니다.
li = [1, 2, 3]
# 리스트에서 2개 랜덤 추출
sampleList = random.sample(li, 2)
단, sample에서 추출하고자 하는 숫자가 리스트의 인덱스보다 많다면, 오류가 발생합니다.
li = [1, 2, 3]
# 컴파일 에러
sampleList = random.sample(li, 4)
리스트에서 여러 가지를 랜덤으로 추출하기(중복 허용)
random의 choice를 for문과 연계하여 활용하면, 중복을 허용하고 정한 숫자만큼 랜덤으로 추출해 올 수 있습니다.
li = [1, 2, 3]
# 리스트에서 2개 랜덤 추출(중복 허용)
choiceLIst = [random.choice(li) for i in range(2)]