IT박스

세트에서 random.choice?

itboxs 2020. 11. 24. 07:48
반응형

세트에서 random.choice? 파이썬


저는 추측 게임의 AI 부분을 작업하고 있습니다. AI가이 목록에서 임의의 문자를 선택하기를 원합니다. 게임에서 추측되는 문자를 목록에서 쉽게 제거 할 수 있으므로 더 이상 추측 할 수 없습니다.

set개체가 색인을 생성 할 수 없다고 말합니다 . 이 문제를 어떻게 해결할 수 있습니까?

import random 
aiTurn=True

while aiTurn == True:
    allLetters = set(list('abcdefghijklmnopqrstuvwxyz'))
    aiGuess=random.choice(allLetters)



    print (aiGuess) 

>>> random.sample(set('abcdefghijklmnopqrstuvwxyz'), 1)
['f']

문서 : https://docs.python.org/3/library/random.html#random.sample


을 사용해야합니다 random.choice(tuple(myset)). 왜냐하면 random.sample. 테스트를 위해 다음을 작성했습니다.

import random
import timeit

bigset = set(random.uniform(0,10000) for x in range(10000))

def choose():
    random.choice(tuple(bigset))

def sample():
    random.sample(bigset,1)[0]

print("random.choice:", timeit.timeit(choose, setup="global bigset", number=10000)) # 1.1082136780023575
print("random.sample:", timeit.timeit(sample, setup="global bigset", number=10000)) # 1.1889629259821959

숫자로 볼 때 random.sample7 % 더 오래 걸리는 것 같습니다 .

참고 URL : https://stackoverflow.com/questions/15837729/random-choice-from-set-python

반응형