Подтвердить что ты не робот

Random.choice from set? питон

Я работаю над частью искусственного интеллекта в игре на угадывание. Я хочу, чтобы ИИ выбрал случайную букву из этого списка. Я делаю это как набор, так что я могу легко удалить буквы из списка, так как они угаданы в игре и, следовательно, больше не доступны, чтобы угадать снова.

он говорит, что set объект не индексируется. Как я могу обойти это?

import random 
aiTurn=True

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



    print (aiGuess) 
4b9b3361

Ответ 2

Вы должны использовать 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.sample занимает на 7% больше времени.