Duda sobre "aleatorizar" una lista

Afonso Fernández Nogueira fonso en aturuxo.net
Dom Mar 7 12:22:02 CET 2004


Pablo Ruiz Múzquiz wrote:
> Cuando lo vi pensé que sí. Pero luego, al usarlo con el join, me dio
> este error:
> 
> ''.join(random.shuffle(l) or l)
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
> TypeError: sequence item 0: expected string, int found

Este problema no parece que tenga que ver con la solución propuesta, en 
todo caso.

> -------------------------------------
> import sys, random
>                 
> def azar(l):
>     if not random.shuffle(l): return l
> 
> print ' '.join([p[0]+''.join(azar(list(p[1:-1])))+p[-1] for p in
> sys.argv[1].split()])
> --------------------------------------

Esto parece funcionar:

----
import sys, random

print ' '.join([p[0]+''.join((lambda x:random.shuffle(x) or 
x)(list(p[1:-1])))+p[-1] for p in
sys.argv[1].split()])
----

¿Esto qué es, un concurso de Python enrevesado ;) ?


Un saludo,
Fonso




Más información sobre la lista de distribución Python-es