[Python] 리스트 랜덤 섞기, 3가지 방법
July 09, 2024
리스트가 갖고 있는 요소들의 순서를 랜덤으로 섞는 방법에 대해서 알아보겠습니다.
리스트의 요소들을 무작위로 뽑거나, 어떤 동작을 무작위로 동작하게 만드려고 리스트의 순서를 랜덤으로 변경하고 싶을 때가 있습니다.
1. random.shuffle()을 이용한 방법
random.shuffle(list)
는 list의 순서를 랜덤으로 섞습니다.
아래와 같이 구현할 수 있습니다.
import random
my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print(my_list)
Output:
[1, 5, 4, 3, 2]
2. random.sample()을 이용한 방법
random.sample(list, num)
은 list가 갖고 있는 요소들 중에서 num 개수만큼 무작위로 요소 값을 뽑고 값들을 리스트에 저장하여 리턴합니다.
random.sample(my_list, len(my_list))
: my_list의 개수만큼 무작위로 뽑고 리스트로 반환, 즉, my_list의 순서가 랜덤으로 변경된 리스트가 새로운 만들어짐my_list
의 순서는 변경되지 않음
import random
my_list = [1, 2, 3, 4, 5]
shuffled_list = random.sample(my_list, len(my_list))
print(shuffled_list)
Output:
[4, 1, 3, 2, 5]
3. random.choice()를 이용한 방법
random.choice(list)
는 list에서 무작위로 1개의 요소를 뽑아서 리턴합니다.
아래와 같이 랜덤으로 섞은 리스트를 만들 수 있습니다.
random.choice(my_list)
: my_list에서 무작위로 하나 뽑음shuffled_list.append(element)
: 무작위 요소를 결과 리스트에 저장my_list.remove(element)
: 한번 뽑은 요소가 다음choice()
에서 다시 안뽑히도록 my_list에서 제거while my_list:
: my_list에서 모든 값을 뽑아서 비어 있는 리스트가 되면, while문 종료됨
import random
my_list = [1, 2, 3, 4, 5]
shuffled_list = []
while my_list:
element = random.choice(my_list)
shuffled_list.append(element)
my_list.remove(element)
print(shuffled_list)
Output:
[2, 3, 1, 5, 4]