✅ 핵심 차이 요약
함수 이름 / 설명 / 목적
random.choice(list) | 리스트에서 단 하나의 항목 무작위 선택 | "하나만 고를 때" |
random.shuffle(list) | 리스트 항목 전체 순서를 랜덤 섞음 (in-place) | "여러 개를 모두 무작위 순서로 쓰고 싶을 때" |
✅ 왜 random.shuffle()을 쓰는가?
사용하려는 목적 예시.
get_random_audio_from_drive_path() 안에서 mp3 파일 리스트를 가져온 후
**"재생 가능한 파일을 먼저 찾고 그 중 하나를 고르려는 구조"**
random.choice(files):
python
복사편집
selected = random.choice(files)
➡ 파일 리스트가 순차일 경우, 항상 choice()가 처음 항목만 선택할 가능성 ↑
(= 일부 앞부분의 파일만 반복 선택 될 확률이 높다)
➡ 추가로 파일이 존재하는지 검사
random.shuffle(files):
python
복사편집
random.shuffle(files) for file in files:
➡ if 파일이 존재하는지 유효성 검사조건: return file
➡ 순서를 먼저 섞고, 처음으로 “사용 가능한 파일”이 발견되면 바로 선택
= 공정하게 무작위 mp3가 선택됨
= 반복성/불균형 ↓
✅ 정리하면:
상황에 따른 추천 방식
리스트 중 단 하나 선택 | random.choice() |
리스트 전체에서 조건부로 순회 → 처음 사용 가능한 항목 선택 | random.shuffle() + for 순회 |
📌 리스트에 담겨있는 데이터가 순서를 가지고있는 또는 순차적인 것이라면 shuffle방식 추천.
728x90
'개발로그 > Python' 카테고리의 다른 글
pyinstaller 빌드 한 번 해보자... 준비사항 (0) | 2025.03.24 |
---|---|
PyInstaller 로 .exe 만들기 간단 요약 (윈도우 기준), 경로 설정 방법 (0) | 2025.03.23 |
anaconda + python 완전히 지우는 방법. (0) | 2025.03.22 |
없어져라! SSL 문제 해결을 위한 실전 대응 북 (0) | 2025.03.16 |
Preload + On-demand + Fallback 구조 (캐싱전략에 관하여, 용어설명) 메모 (0) | 2025.03.12 |
python - API 연동할 때, 인증코드를 모듈마다 넣는 이유..가 있었다.. 무식해서 그런게 아니라규..ㅠ (0) | 2025.03.11 |
구글드라이브에서 API로 파일 탐색을 할 때, 어떻게 하는게 더 효율적일까? feat ChatGPT (0) | 2025.03.11 |
Pygame에서 나오는 모든 소리를 하나의 파일(wav)로 저장하는 방법 (0) | 2025.03.10 |
댓글