반응형
종종 리스트에서 랜덤으로 원소를 추출할때가 있다.
로직을 세워서 랜덤하게 추출할 수 있지만,
우리의 시간은 소중하니 좀 더 쉽게 접근하는 방법을 정리해본다.
아래의 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
반응형
'coding 📟 > python 💻' 카테고리의 다른 글
[Python] 가상환경 pyenv (1) | 2022.05.13 |
---|---|
[Python] 파이썬 가상환경이란? (1) | 2022.05.13 |
[Python] Iterator(이터레이터) Iterable(이터러블) 정리 비교 (0) | 2022.03.08 |
[Python] assert raise 비교 (0) | 2022.03.08 |
[Python] 파이썬 리스트, 배열 최대값 최소/최대 값 찾기 - min/max 함수 (0) | 2022.03.08 |
댓글