[pyar] Randomizar diccionarios para un programa.

Javier Marín nano.world.contact en gmail.com
Jue Mayo 10 01:05:21 ART 2012


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.

El 9 de mayo de 2012 22:02, Alan Jonatan Romero <eldoblecero en gmail.com>escribió:

> Hacele caso a Gabriel (el segundo que respondió):
>
>
> Fijate que estas imprimiendo la lista de claves (claves) en vez de la
>> clave que seleccionaste al azar (clavealazar).
>>
>> deberias hacer:
>>
>> print clavealazar, preguntas_respuestas[clavealazar]
>>
>> --
>> Gabriel E. Patiño
>>
>
>
> Además, podría sugerir algo? Que, siguiendo con los diccionarios como
> venías usándolos, que los "valores" del diccionario sean una tupla
> conteniendo tanto las opciones como las respuestas, por ej:
>
> preguntas_respuestas = {'Cuanto es 1+1':(('a: 2','b: 5','c: 8'),('a: 2')),
> 'Tu mama te quiere?':(('a: si', 'b: no', 'c: tal vez'),('a:si'))}
>
>
> claves = preguntas_respuestas.keys()  # Ahora claves tiene el valor =
> ['Cuanto es 1+1','Tu mama te quiere?']
> clavealazar = random.choice(claves) # clavealazar tendrá alguna de las dos
> claves, por ejem 'Tu mama te quiere?'
>
>
> # PARA IMPRIMIR HARIAMOS:
> print 'pregunta: ', clavealazar
>
> # Esto imprime el primer elemento de la tupla que esta contenida en el
> value() o sea las opciones
> print 'opciones: ', preguntas_respuestas[clavealazar][0]
>
> # Esto imprime el segundo elemento de la tupla que esta contenida en el
> value() o sea la respuesta
> print 'respuesta: ', preguntas_respuestas[clavealazar][1]
>
>
> Si te mareo con lo que hice con el diccionario avisame y lo aclaro
>
>
> --
> >> ========================= > El Alan
>   _____________
> _ |                       |
> _ |        :{i i}:       _|
> _ |          ||||          |
> _ |       _.||||  _     _|
> _ |     (    ||||U  )     |
> _ |      )   ||||   (      |
> _ |     (   [:::]   )     |
> _ |      `·-.....-·´      |
> _ |_____________|
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>



-- 
Nano.
@_nanodice_
Blog: nano-dice <http://nano-dice.blogspot.com>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120509/c5f5f52b/attachment.html>


More information about the pyar mailing list