리스트에서 무작위로 배열안의 멤버를 추출하는 법을 소개한다.


아래처럼 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줄에서 두 줄로 줄었고 훨씬 보기 좋다.






+ Recent posts