Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 리스트에서 항목을 무작위로 선택하는 방법

Python 리스트에서 항목을 무작위로 선택하기

Python의 표준 라이브러리에는 random 모듈이 포함되어 있습니다. 이 모듈은 메르센 트위스터(Mersenne Twister) 알고리즘을 기반으로 하는 다양한 의사 난수 생성기를 제공하며, 시퀀스 데이터에서 항목을 무작위로 뽑는 기능도 간편하게 사용할 수 있습니다.

1. choice() 함수 사용하기

random 모듈의 choice() 함수는 문자열, 리스트, 튜플과 같은 시퀀스 자료형에서 항목 하나를 무작위로 선택해 반환합니다.

>>> from random import choice
>>> lst = [1, 2, 3, 4, 5]
>>> choice(lst)
4
>>> choice(lst)
5
>>> choice(lst)
3

호출할 때마다 리스트 내의 요소가 균등한 확률로 선택되므로, 실행 결과는 매번 달라질 수 있습니다.

2. randrange() 함수와 인덱스 활용하기

또 다른 방법은 randrange() 함수를 이용해 리스트 인덱스에 해당하는 난수를 생성하는 것입니다. 생성 범위는 0부터 len(lst) - 1까지이며, 이 값을 인덱스로 사용해 항목을 꺼낼 수 있습니다.

>>> from random import randrange
>>> lst = [1, 2, 3, 4, 5]
>>> index = randrange(len(lst))
>>> lst[index]
4
>>> index = randrange(len(lst))
>>> lst[index]
3

참고: 여러 개의 항목을 무작위로 선택하려면?

항목 하나가 아니라 여러 개를 중복 없이 뽑고 싶다면 sample() 함수를 사용하는 것이 좋습니다.

>>> from random import sample
>>> lst = [1, 2, 3, 4, 5]
>>> sample(lst, 2)
[3, 1]

또한 shuffle() 함수를 사용하면 리스트 자체의 순서를 무작위로 섞을 수 있어, 카드 게임 등 순서를 랜덤화해야 하는 상황에서 유용합니다.