본문 바로가기
coding 📟/python 💻

[Python] 리스트 원소 랜덤 추출

by 고돌한 데이터 사이언스 2022. 3. 8.
반응형

 

종종 리스트에서 랜덤으로 원소를 추출할때가 있다.

로직을 세워서 랜덤하게 추출할 수 있지만,

우리의 시간은 소중하니 좀 더 쉽게 접근하는 방법을 정리해본다.

 

아래의 3가지 방법을 알아보자.

 

  • 리스트 내 1개 원소 랜덤 추출
  • 리스트 내 복수 원소 랜덤 추출(중복 허용 x)
  • 리스트 내 복수 원소 랜덤 추출(중복 허용 o)

 

공통사항

우선 랜덤으로 추출하기 위해 random 모듈을 import 해줘야 한다.

import random

 

리스트 내 1개 원소 랜덤 추출


리스트에서 원소를 추출하는 random 모듈의 메소드로는

choice, sample 등이 있는데, 한 가지 원소를 랜덤 추출할 경우 choice 메소드를 사용한다.

li = [1,2,3]
random_choice = random.choice(li)
print(random_choice)
---------------------------------
2

 

리스트 내 복수 원소 랜덤 추출(중복 허용 x)


아마 가장 많이 사용하는 경우가 아닐가 생각한다.

이런 경우, sample 메소드를 사용하면 된다.

중복을 허용하지 않고, 정한 숫자 만큼 원소를 랜덤으로 추출한다.

 

li = [1,2,3]
random_sample = random.sample(li,2)
print(random_sample)
-----------------------------------
[3, 2]

이때, 추출하고자 하는 숫자가 리스트의 인덱스보다 많으면 컴파일 에러가 발생한다.

li = [1,2,3]
random_sample = random.sample(li,4)
print(random_sample)
-----------------------------------
ValueError: Sample larger than population or is negative

 

리스트 내 복수 원소 랜덤 추출(중복 허용 o)


random 모듈의 choice 메소드와 list comprehension을 사용하여 

중복을 허용하고, 정한 숫자 만큼 원소를 랜덤으로 추출한다.

li = [1,2,3]
random_choice = [random.choice(li) for i in range(2)]
print(random_choice)
-----------------------------------------------------
[1, 1]

 

🎥고돌한고돌이 youtube

https://www.youtube.com/channel/UCJqvLr-GzRouSGiT235bMuw

 

고돌한고돌이 KODORRI

하고싶은거 많은 고돌이의 먹부림 일상

www.youtube.com

 

반응형

댓글