Desordenando listas en Python
Si tenemos una lista de elementos, por ejemplo: >>> l = [ 2, 3, 5, 7, 11, 13, 17, 19 ] Y queremos desordenarla, pero con la condición de que ningún elemento ocupe la misma posición que ocupaba originalmente, podemos aplicar el algoritmo de Sottolo: >>> from random import randrange >>> def sattoloCycle(items): ... i = len(items) ... while i > 1: ... i = i - 1 ... j = randrange(i) # 0 < = j <= i-1 ... items[j], items[i] = items[i], items[j] ... return >>> sattoloCycle(l) >>> print l [5, 17, 3, 2, 7, 11, 13]