[pyar] Randomizar diccionarios para un programa.

Gabriel gepatino en gmail.com
Mie Mayo 9 17:43:37 ART 2012


El 9 de mayo de 2012 16:47, Javier Marín <nano.world.contact en gmail.com>escribió:

> A ver, hice lo ultimo que me dijiste porque me parece además de más
> sencillo, mejor planteado para un programa, aunque creo que estoy haciendo
> mal.
>
> Este es el código:
>
> #!/usr/bin/env python
> # -*- coding: utf-8 -*-
>
> import random
>
> preguntas = [('Como me llamo?',[('a: ', 'nano'), ('b: ', 'javier'), ('c:
> ', 'Pedro')]), ('cuanto es 1+1', [('a: ', '1'), ('b: ', '2'), ('c: ',
> '3')])]
> azar = random.shuffle(preguntas)
>
> print preguntas[azar]
>
> Y este es el log:
>
> Traceback (most recent call last):
>   File "prueba_rapida.py", line 9, in <module>
>     print preguntas[azar]
> TypeError: list indices must be integers, not NoneType
>
> Nunca he usado ese tipo de funciones shuffle pero ya me llama la
> atención... voy a tratar de conseguir los metodos o atributos de random en
> español.
>
>
random.shuffle mezcla la lista que le pasas y la deja cambiada, no te
devuelve la lista mezclada.

Proba con esto:

claves = preguntas.keys()
random.shuffle(claves)

# ahora claves es una lista de claves mezcladas
for clave in claves:
    print preguntas[clave]

Si solo queres obtener una pregunta al azar, podes hacer:

clave = random.choice(preguntas.keys())
print preguntas[clave]


en los ejemplos anteriores estabas mezclando la lista de claves con una
clave en particular.

-- 
Gabriel E. Patiño
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120509/a2fcdb06/attachment.html>


More information about the pyar mailing list