리스트에서 무작위로 배열안의 멤버를 추출하는 법을 소개한다.
아래처럼 random모듈로 난수(정수)를 발생시켜 추출하는 방법이 있다.
import random
alist= [1,3,4,5,3,2,1]
n = random.randint(0, len(alist)-1))
print(alist[n])
위 처럼 해도 무작위로 추출하는데 문제는 없다마는 코드가 조잡하고 알아보기 어렵다.
python3.6에서 secrets 모듈이 새로 생겼다. 암호학 적으로 훨씬 좋은 난수 발생기라고 한다.
"The
secrets
module is used for generating cryptographically strong random numbers suitable for managing data such as passwords, account authentication, security tokens, and related secrets."
import secrets
alist= [1,3,4,5,3,2,1]
print(secrets.choice(alist))
코드가 3줄에서 두 줄로 줄었고 훨씬 보기 좋다.
'Programmer > Python & Django' 카테고리의 다른 글
How to check currently-used database in django? (0) | 2019.08.12 |
---|---|
Django 배포 후 DNS 설정 Welcome to nginx 페이지만 나온다면? (0) | 2018.11.08 |
(100-1)How to extract a random element from a python list. (0) | 2018.07.10 |
(100-1)파이썬 리스트에서 멤버 무작위 추출하기 (secret module) (0) | 2017.12.02 |
RSA 암호 알고리즘 정리 (0) | 2017.03.09 |
파이썬 프로젝트 1: 수열 직접 만들어 오름차수로 정렬하기 (0) | 2017.03.04 |