1. 무작위 정수추출 

randint(start, stop)

start 이상 stop 이하 범위의 정수 난수 생성

for i in range(10):
    print(i+1, 'th pick',random.randint(1, 10))
1 th pick 7
2 th pick 4
3 th pick 1
4 th pick 4
5 th pick 2
6 th pick 5
7 th pick 4
8 th pick 9
9 th pick 1
10 th pick 9

randrange(start, stop,step)

start 이상 stop 미만 step간격의 리스트에서 무작위 추출

 

for i in range(10):
    print(i+1, 'th pick',random.randrange(1, 10,3))
1 th pick 7
2 th pick 4
3 th pick 1
4 th pick 1
5 th pick 4
6 th pick 1
7 th pick 1
8 th pick 4
9 th pick 1
10 th pick 7

 

2. 리스트순서 섞기

 

shuffle(list)

리스트의 순서를 무작위로 섞어 반환

abcd = alpha_list[:4]

print(abcd)
for i in range(5):
    random.shuffle(abcd)
    print(i+1, 'th pick',abcd)
['a', 'b', 'c', 'd']
['c', 'a', 'd', 'b']
['d', 'a', 'b', 'c']
['d', 'a', 'c', 'b']
['a', 'c', 'd', 'b']
['b', 'a', 'd', 'c']

3. 리스트에서 무작위 1개 추출

 

choice(list)

print(alpha_list)

for i in range(10):
    print(i+1, 'th pick',random.choice(alpha_list))
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
1 th pick d
2 th pick f
3 th pick g
4 th pick a
5 th pick e
6 th pick f
7 th pick e
8 th pick a
9 th pick g
10 th pick c

가중치까지 부여

 

choices(list, weight_list)

print(alpha_list)
weight = list(range(1,11))

print(weight)
for i in range(10):
    print(i+1, 'th pick',random.choices(alpha_list,range(10)))
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
1 th pick ['g']
2 th pick ['j']
3 th pick ['h']
4 th pick ['i']
5 th pick ['c']
6 th pick ['h']
7 th pick ['g']
8 th pick ['f']
9 th pick ['f']
10 th pick ['j']

각각 가중치 부여 뒷쪽 알파벳에 가중치가 높아 뒷쪽이 많이 뽑힘

 

4. 리스트에서 무작위 n개 추출

 

random.sample(list,n)

abcd = alpha_list[:4]

print(abcd)
for i in range(5):
    print(i+1, 'th pick',random.sample(abcd,2))
['a', 'b', 'c', 'd']
['a', 'b']
['c', 'b']
['b', 'a']
['b', 'd']
['b', 'c']

 

+ Recent posts