python

[python] 리스트에서 랜덤 라이브러리 활용

테토 2022. 7. 12. 18:30
반응형

 

 

랜덤라이브러리의 함수를 이용하여 리스트에서 랜덤을 사용하는 방법을 알아보겠습니다.

 

 

random.choice()

 

 

random.choice()는 list에서 랜덤으로 하나를 뽑는 함수입니다.

 

 

import random

nlist = [10,45,28,91,83,77,56]

n1 = random.choice(nlist) # nlist의 값 중 하나를 랜덤으로 반환
n2 = random.choice(range(10)) # 0 ~ 9 중 랜덤으로 하나 반환
n3 = random.choice("string") # string 문자열 중 랜덤으로 문자 하나 반환

print(n1,n2,n3)

## 결과 ##
28 7 n
=============
83 6 r

 

 

랜덤으로 추출하는 것이기 때문에 실행할 때마다 다른 결과를 출력합니다.

위와 같이 리스트가 아닌 range()나 문자열에서도 사용가능합니다.

 

 

 

random.sample()

 

 

random.sample()은 여러개를 추출합니다.

random.sample(리스트 또는 시퀀스, 개수)를 하면 리스트 또는 시퀀스의 있는 요소들 중 원하는 개수만큼 뽑아줍니다.

 

 

 

import random

nlist = [10,45,28,91,83,77,56]

n4 = random.sample(nlist, 3) #random.sample(리스트, 뽑을개수)
n5 = random.sample(nlist, 1)
n6 = random.sample(nlist, len(nlist))
print(n4,n5,n6)

n7 = random.sample(range(10), 8)
n8 = random.sample("hi my name is potato", 5)
print(n7, n8)

## 결과 ##
[56, 91, 77] [77] [10, 77, 45, 83, 28, 91, 56]
[6, 3, 2, 8, 4, 0, 1, 5] ['p', 'm', ' ', 't', 'a']
======================= 
[83, 56, 10] [28] [77, 45, 91, 10, 83, 56, 28]
[6, 2, 7, 0, 1, 3, 8, 5] [' ', ' ', 'm', 'y', 't']

 

 

랜덤이기 때문에 실행할 때마다 다른 값이 출력됩니다.

sample을 사용하면 중복이 없이 출력이 됩니다.

만약 중복이 필요할 경우 random.choice()함수를 이용한 반복문을 사용하는 방법이 있습니다.

 

 

 

random.suffle()

 

리스트를 랜덤으로 섞어주는 함수입니다.

 

import random
nlist = [10,45,28,91,83,77,56]

random.shuffle(nlist)
print(nlist)

rando.shuffle(nlist)
print(nlist)


## 결과 ##
[10, 83, 77, 45, 28, 91, 56]
[77, 56, 45, 91, 10, 28, 83]

 

 

random.shuffle()은 원본 리스트를 변경합니다.

 

 

 

 

반응형