[pyar] Randomizar diccionarios para un programa.

Alejandro Santos listas en alejolp.com
Mie Mayo 9 16:34:59 ART 2012


2012/5/9 Javier Marín <nano.world.contact en gmail.com>:
> El título no es muy explicativo, pero no consigo otra manera de llamarle...
> La cosa es que llevo rato tratando de hacer un juego medio tonto que te hace
> preguntas al azar y te da 3 opciones para elegir como respuesta.
>
>
> preguntas_respuestas = {'Cuanto es 1+1':('a: 2','b: 5','c: 8'),'Tu mama te
> quiere?':['a: si', 'b: no', 'c: tal vez']}
>

Es posible que haya otras formas de encarar este problema, pero no me
termina de convencer que guardes las preguntas y respuestas en un
dicccionario de la forma que lo hacés, y creo que tu confusión aparece
por ese lado.

Tendría sentido usar un diccionario si lo usás para relacionar una
pregunta con la respuesta correcta, de forma que sea muy fácil ver si
el usuario ingresó correctamente la respuesta. Pero tu código no dice
eso.

La razón es muy simple: los elementos de un diccionario no están
ordenados, y lo que vos estás buscando es justamente ordenarlos con un
criterio específico: al azar.

Una buena forma de encararlo es que cambies el dict por una lista, y
hagas random.shuffle(preguntas), donde preguntas es la lista de
preguntas. Ahí vas a tener las preguntas mezcladas.

Por ejemplo:

preguntas = [("Cuanto es 1+1", [('a', '2'), ('b', '3'), ('c', '4')]),
("Cual es la respuesta a la vida, el universo y el resto?", [('a',
'3'), ('b', '77'), ('c', '42'),]), ("...", [...])]

-- 
Alejandro Santos



More information about the pyar mailing list