반응형

파이썬 리스트에서 랜덤 뽑기

파이썬 즐겁게 하고 계신가요? 로또, 뽑기, 자동화 등 다양한 상황에서 랜덤으로 대상을 추출할 일이 많이 있습니다. 파이썬 리스트 인자를 랜덤으로 추출하는 방법은 대표적으로 세가지를 꼽아 볼 수 있겠네요.

머리 아프지 않게 차근차근 설명할테니 편안하게 따라해 보세요.

 

세 가지 방법은 모두 다 파이썬 내장 함수인 random 함수를 사용합니다. 실행하기 전에 random 모듈을 import 해줘서 함수를 사용 할 수 있도록 합시다!!

 

# 랜덤함수를 호출한다

import random

 

 

1. 리스트에서 1개만 랜덤 추출하기

리스트의 요소를 추출하는 함수는 choice 와 sample 이 있습니다. 두 가지가 차이점이 있겠죠? 먼저 choice는 리스트에서 한 가지 요소만 랜덤으로 추출하는 함수 입니다.

 

# list_a 에서 한가지만 랜덤 추출한다.

list_a = [1, 2, 3]
choicelist = random.choice(list_a)

 

 

2. 리스트에서 다수 랜덤 추출 (중복허용 안됨)

random 모듈 sample 함수는 choice 함수와 다르게 지정한 숫자만큼 숫자를 추출합니다. 중복을 허용하지 않고 리스트 속 인자를 추출해요.

 

# 리스트에서 2개 랜덤 추출

list_b = [1, 2, 3, 4, 5]
samplelist = random.sample(list_b, 2)

 

여기서 잠깐!!! sample에서 추출하려는 인자의 수가 리스트의 인덱스 갯수 보다 많다면 어떻게 될까요? 바로, 오류가 발생합니다.

 

# 숫자가 많으면 에러 발생

list_d = [1, 2, 3]
sampleList = random.sample(list_d, 4)

 

 

3. 리스트에서 다수 랜덤 추출 (중복허용 하기)

 

그럼 중복을 허용해서 다수의 숫자를 뽑으려면 어떻게 해야 할 까요? for문을 이용해서 해결 가능합니다. choice를 for문과 엮어서 사용하는 방법인데요. 아래 처럼 사용하면 리스트와 함께 사용하면 중복된 랜덤 추출이 가능해 집니다.

 

# 리스트에서 중복을 허용해서 3개 랜덤 뽑기

list_e = [1, 2, 3]
choicelist = [random.choice(list_e) for i in range(3)]
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기