¿Elije al azar del set? python

Estoy trabajando en una parte de inteligencia artificial de un juego de adivinanzas. Quiero que la IA seleccione una letra aleatoria de esta lista. Lo hago en conjunto para poder eliminar fácilmente las letras de la lista, ya que están adivinadas en el juego y, por lo tanto, ya no están disponibles para ser adivinadas.

dice set objeto set no es indexable. ¿Cómo puedo solucionar esto?

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

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

Documentación: https://docs.python.org/3/library/random.html#random.sample

Debería usar random.choice (tuple (myset)), porque es más rápido y posiblemente más limpio que random.ample. Escribí lo siguiente para probar:

 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 

De los números parece que random.sample tarda un 7% más.