Python - 리스트 랜덤 추출

리스트에서 랜덤 value 또는 다수의 무작위 값들을 추출하는 방법을 소개합니다.

1. random.choice() : 리스트에서 랜덤 value 추출

random.choice(list)는 list의 value들 중에 랜덤으로 하나를 선택하여 값을 리턴합니다.

import random

numbers = [1, 5, 4, 9, 7, 10]

random_num = random.choice(numbers)
print(random_num)

random_num = random.choice(numbers)
print(random_num)

Output:

9
1

1.1 동일한 Random value를 허용하지 않는 방법

random.choice()는 리스트에서 무작위로 숫자를 추출하는데, 여러번 호출할 때 확률적으로 동일한 값이 리턴될 수 있습니다.

만약 동일한 리스트에서 여러번 랜덤 값을 가져올 때 중복을 허용하고 싶지 않다면, 랜덤 value 추출 후 리스트에서 삭제하면 됩니다.

import random

numbers = [1, 5, 4, 9, 7, 10]

# get random value
print(f"list: {numbers}")
random_num = random.choice(numbers)
numbers.remove(random_num)
print(f"random value: {random_num}")

# get random value
print(f"list: {numbers}")
random_num = random.choice(numbers)
numbers.remove(random_num)
print(f"random value: {random_num}")

Output:

list: [1, 5, 4, 9, 7, 10]
random value: 1
list: [5, 4, 9, 7, 10]
random value: 5

2. random.randrange() : 랜덤 index 추출

random.randrange(size)는 0에서 size 사이의 숫자를 무작위로 리턴합니다.

만약 size로 리스트의 길이를 리턴하면, 리스트의 index를 무작위로 추출할 수 있습니다. 추출된 index로 리스트에서 값을 가져오면 랜덤 value를 추출하게 됩니다.

import random

numbers = [1, 5, 4, 9, 7, 10]

random_index = random.randrange(len(numbers))
print(f"index: {random_index}")
print(f"value: {numbers[random_index]}")

Output:

index: 4
value: 7

3. random.sample() : N개의 랜덤 value 추출

random.sample(list, size)는 list에서 size 개수의 랜덤 value를 추출하여 리스트로 리턴합니다.

import random

numbers = [1, 5, 4, 9, 7, 10]

random_values = random.sample(numbers, 3)
print(random_values)

Output:

[5, 7, 4]
Loading script...
codechachaCopyright ©2019 codechacha