[pyar] Randomizar diccionarios para un programa.

Mariano Mara mariano.mara en gmail.com
Jue Mayo 10 01:31:39 ART 2012


El 10 de mayo de 2012 01:05, Javier Marín
<nano.world.contact en gmail.com>escribió:

> Pues sigo sin lograrlo, estoy tratando de hacerlo de los dos modos, con
> listas y con los diccionarios... El método de Ariel, no se si lo esté
> implementando mal pero a ver, así trato de hacerlo:
>
> #!/usr/bin/env python
> # -*- coding: utf-8 -*-
>
> import random
> from random import choice
>
> preguntas_respuestas = {'Cuanto es 1+1':('a: 2','b: 5','c: 8'),'Tu mama te
> quiere?':['a: si', 'b: no', 'c: tal vez']}
> clave = preguntas_respuestas.keys()
> clave_azar = random.choice(clave)
>
> print clave, preguntas_respuestas[clave]
>
> y el error que me da es:
>
> ['Tu mama te quiere?', 'Cuanto es 1+1']
>  Traceback (most recent call last):
>   File "prueba_rapida.py", line 11, in <module>
>     print clave, preguntas_respuestas[clave]
> TypeError: unhashable type: 'list'
>
> Sigo notando que me envía la lista de claves, estoy notando que necesito
> algún indice numérico para llamar a una sola de las claves.
>
> La parte de las listas aún no las tengo hechas, en cuanto las tenga pongo
> lo que logre sacar.
>
>
>

yo realmente no estoy seguro de entender el problema pero aca va mi intento
de solución (por lo menos las preguntas y las respuestas vienen al azar):


>>> for x,y in sorted(preguntas_respuestas.iteritems(), key=lambda x:
random.random()): print(x, sorted(y, key=lambda x: random.random()))
('Cuanto es 1+1', ['c: 8', 'a: 2', 'b: 5'])
('Tu mama te quiere?', ['c: tal vez', 'b: no', 'a: si'])

>>> for x,y in sorted(preguntas_respuestas.iteritems(), key=lambda x:
random.random()): print(x, sorted(y, key=lambda x: random.random()))
('Tu mama te quiere?', ['b: no', 'c: tal vez', 'a: si'])
('Cuanto es 1+1', ['b: 5', 'c: 8', 'a: 2'])
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120510/4a631e79/attachment.html>


More information about the pyar mailing list