Python의 목록에서 항목을 무작위로 선택하는 방법
-
모듈
random
을 사용하여 Python의 목록에서 무작위 항목 선택 -
모듈
secrets
를 사용하여 Python의 목록에서 임의의 항목 선택 -
모듈
NumPy
를 사용하여 Python의 목록에서 임의 항목 선택
이 자습서에서는 Python의 목록에서 임의의 항목을 선택하는 방법을 보여줍니다. 이를 달성하는 여러 가지 간단한 방법이 있으며, 모두 Python 모듈 가져 오기를 포함합니다.
이 튜토리얼에서는random
,secrets
,NumPy
모듈이 필요한 솔루션을 다룹니다.
제시 될 모든 솔루션은 의사 난수 생성기 (PRNG)를 사용합니다.
모듈random
을 사용하여 Python의 목록에서 무작위 항목 선택
무작위 화에 사용되는 가장 일반적인 모듈은 random
모듈입니다. 이 모듈은 무작위 화와 관련된 작업을 지원하기 위해 의사 무작위 유틸리티 함수를 구현합니다.
투표 용지처럼 목록에서 임의의 이름을 선택하고 싶다고 가정 해 보겠습니다.
["John", "Juan", "Jane", "Jack", "Jill", "Jean"]
이 목록에서 임의의 이름을 선택하려면 주어진 사용 가능한 데이터에서 항목을 선택하는random.choice()
를 사용합니다.
import random
names = ["John", "Juan", "Jane", "Jack", "Jill", "Jean"]
def selectRandom(names):
return random.choice(names)
print("The name selected is: ", selectRandom(names))
물론 출력은 가변적이고 무작위입니다. 따라서 변수names
에 저장된 6 개의 이름 중 하나 일 수 있습니다.
모듈secrets
를 사용하여 Python의 목록에서 임의의 항목 선택
secrets
모듈은 본질적으로random
과 동일한 목적으로 사용됩니다. 그러나 secrets
는 PRNG를 구현하는 암호화 보안 방법을 제공합니다.
암호, 인증, 암호화 및 암호 해독, 토큰 저장과 같은 실제 응용 프로그램에서. secrets
은 random
를 사용하는 것보다 훨씬 안전합니다. 시뮬레이션이나 민감한 데이터를 처리하지 않는 작업에만 유용하기 때문입니다.
이 문제에서는 민감한 데이터를 처리하지 않고 시뮬레이션을 위해이 작업을 수행하므로 두 모듈 모두 동일한 값을 제공합니다.
이 예에서는 동일한 names
목록을 사용합니다. secrets
에는random.choice()
와 동일한 변수 출력을 생성하는choice()
함수의 버전도 있습니다.
import secrets
names = ["John", "Juan", "Jane", "Jack", "Jill", "Jean"]
def selectRandom(names):
return secrets.choice(names)
print("The name selected is: ", selectRandom(names))
모듈NumPy
를 사용하여 Python의 목록에서 임의 항목 선택
NumPy
모듈에는 랜덤 화를위한 유틸리티 함수도 있으며choice()
함수에 대한 인수로 몇 가지 확장 도구가 있습니다.
다시 말하지만, 함수numpy.random.choice()
를 보여주기 위해 동일한names
목록을 사용할 것입니다.
import numpy
names = ["John", "Juan", "Jane", "Jack", "Jill", "Jean"]
def selectRandom(names):
return numpy.random.choice(names)
print("The name selected is: ", selectRandom(names))
이 함수는 다른 두 모듈이 생성 한 것과 동일한 변수 출력을 반환합니다.
NumPy
는 choice()
에 대한 다른 인수도 제공하여 목록 형식으로 출력합니다.
두 번째 인수는 반환 할 임의 항목 수를 결정하기 위해 정수 값을받습니다. names
목록에서 임의의 항목 4 개를 반환한다고 가정 해 보겠습니다.
def selectRandom(names):
return numpy.random.choice(names, 4)
print("The names selected are: ", selectRandom(names))
샘플 출력 :
The names selected are: ['John', 'Jill', 'Jill', 'Jill']
무작위 결과에서 동일한 항목이 두 번 이상 반복 될 가능성이 있습니다.
결과 항목이 고유 한 것을 선호하는 경우 세 번째 boolean
인수를 전달하여 교체없이 무작위 샘플링을 사용할 수 있습니다.
def selectRandom(names):
return numpy.random.choice(names, 4, False)
샘플 출력 :
The names selected are: ['Jill', 'John', 'Jack', 'Jean']
이 함수는 항상 중복 항목없이 고유 한 목록을 생성합니다.
세 번째 인수를 추가하는 경우 한 가지 주요 단점은 중복을 확인하고 아직 결과 내에 존재하지 않는 항목으로 대체하기 위해 추가 된 작업을 실행하기 때문에 함수의 런타임입니다.
요약하면, 파이썬 목록에서 임의의 항목을 선택하는 것은random
,secrets
또는NumPy
의 세 가지 모듈 중 하나를 사용하여 수행 할 수 있습니다. 각각의 장점과 단점이 있습니다.
암호 학적으로 안전한 PRNG 방법을 원한다면 secrets
가 가장 적합한 모듈입니다. 시뮬레이션 또는 민감하지 않은 데이터 조작만을 목적으로하는 경우random
또는NumPy
를 사용하십시오. 하나 이상의 임의 결과를 원하면NumPy
를 사용하십시오.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn