Reordenación de Listas

» IzRota


izRota rota listas a la izquierda.

muestra iota 10

[0 1 2 3 4 5 6 7 8 9]

muestra izRota iota 10

[1 2 3 4 5 6 7 8 9 0]

muestra izRota izRota iota 10

[2 3 4 5 6 7 8 9 0 1]

muestra izRota [cynthia daniel david ruth victor]

[daniel david ruth victor cynthia]

muestra izRota [[1 2] [3 4] [5 6]]

[[3 4] [5 6] [1 2]]


» DeRota


deRota rota listas a la derecha.

muestra iota 10

[0 1 2 3 4 5 6 7 8 9]

muestra deRota iota 10

[9 0 1 2 3 4 5 6 7 8]

muestra deRota [cynthia daniel david ruth victor]

[victor cynthia daniel david ruth]

muestra deRota [[1 2] [3 4] [5 6]]

[[5 6] [1 2] [3 4]]


» Flota


flota toma el elemento que se encuentra en la posición indicada y lo coloca al inicio:

muestra flota [1 [0 1 2 3 4]]

[1 0 2 3 4]

En el ejemplo anterior, flota toma el elemento que se encontraba en la posición 1 de la lista [0 1 2 3 4] y lo movió al inicio de la lista.

muestra flota [2 [0 1 2 3 4]]

[2 1 0 3 4]

En el ejemplo anterior, flota toma el elemento que se encontraba en la posición 2 de la lista [0 1 2 3 4] y lo movió al inicio de la lista.

muestra flota [1 [5 6 4 3 2]]

[6 5 4 3 2]

muestra flota [0 [5 6 4 3 2]]

[5 6 4 3 2]

muestra flota [3 [5 6 4 3 2]]

[3 5 6 4 2]

flota produce listas, no palabras:

muestra flota [1 daniel]

[a d n i e l]

flota también puede recibir una lista de índices en vez de un sólo índice.

muestra flota [1 [0 1 2 3 4]]

[1 0 2 3 4]

En lo anterior, flota toma el elemento en la posición 1. Si deseamos eliminarlo podemos usar menosprimero:

muestra menosprimero [1 0 2 3 4]

[0 2 3 4]

muestra flota [1 [0 2 3 4]]

[2 0 3 4]

En lo anterior, flota toma nuevamente el elemento en la posición 1 de lo que quedó luego de haber eliminado el elemento 1.

Lo siguente quiere decir: flota el elemento en la posición 1 de la lista y luego flota el elemento en la posición 1 de lo que queda de la lista.

muestra flota [[1 1] [0 1 2 3 4]]

[1 2 0 3 4]


» Flota » relación con baraja


Una forma de barajar un montón de cartas es tomar cualquiera de las cartas del montón e iniciar con ella un montón nuevo, luego tomar cualquiera de las cartas de lo que resta del primer montón y ponerla debajo la primera carta del nuevo montón, tomar nuevamente cualquiera de las cartas de lo que resta del primer montón y ponerla debajo del otro montón y así hasta que el primer montón ya no tenga cartas:

muestra refleja [0 1 2 3 4]

[4 3 2 1 0]

muestra impon "inc [4 3 2 1 0]

[5 4 3 2 1]

muestra impon [azar inc] [4 3 2 1 0]

[4 2 1 1 0]

muestra impon [azar inc] [4 3 2 1 0]

[3 1 1 0 0]

muestra flota lista [3 1 1 0 0] [0 1 2 3 4]

[3 1 0 2 4]

muestra flota expon [[impon [azar inc] refleja] mismo] [0 1 2 3 4]

[4 2 3 1 0]

muestra flota expon [[impon [azar inc] refleja] mismo] [0 1 2 3 4]

[0 3 1 2 4]

muestra flota expon [[impon [azar inc] refleja] mismo] [0 1 2 3 4]

[3 2 1 0 4]

muestra flota expon [[impon [azar inc] refleja] mismo] [0 1 2 3 4]

[0 2 4 3 1]

muestra flota expon [[impon [azar inc] refleja] mismo] [0 1 2 3 4]

[4 2 3 0 1]

muestra flota expon [[impon [azar inc] refleja] mismo] [0 1 2 3 4]

[2 1 3 4 0]


» Refleja


muestra iota 10

[0 1 2 3 4 5 6 7 8 9]

muestra refleja iota 10

[9 8 7 6 5 4 3 2 1 0]

muestra refleja [cynthia daniel david ruth victor]

[victor ruth david daniel cynthia]

muestra refleja "daniel

[l e i n a d]

muestra refleja 12345

[5 4 3 2 1]


» Baraja


muestra iota 10

[0 1 2 3 4 5 6 7 8 9]

muestra baraja iota 10

[0 9 7 5 4 1 3 2 8 6]

muestra baraja iota 10

[7 6 9 5 0 8 3 1 2 4]

muestra baraja [cynthia daniel david ruth victor]

[daniel david victor ruth cynthia]

muestra baraja [cynthia daniel david ruth victor]

[ruth david daniel victor cynthia]

baraja produce listas, no palabras:

muestra baraja "bdca

[b d a c]

muestra baraja "bdca

[b a c d]

Pero:

muestra junta baraja "daniel

iaedln


» Ordena


muestra ordena [2 6 1 3 5 7 4 8 9 0]

[0 1 2 3 4 5 6 7 8 9]

muestra ordena [daniel david cynthia victor ruth]

[cynthia daniel david ruth victor]

muestra ordena [[2 1] [1 2] [1 3] [1 1]]

[[1 1] [1 2] [1 3] [2 1]]

muestra ordena [[1 1 1] [1] [1 1]]

[[1] [1 1] [1 1 1]]

ordena produce listas, no palabras:

muestra ordena "bdca

[a b c d]


» Prioriza


prioriza ordena los elementos de una lista según el orden de otra lista de igual tamaño llamada lista clave.

muestra prioriza lista [2 0 1 5 6 4 3] [Martes Domingo Lunes Viernes Sabado Jueves Miercoles]

[Domingo Lunes Martes Miercoles Jueves Viernes Sabado]

Las vocales priorizadas de acuerdo a su número ASCII:

muestra prioriza lista [117 111 105 101 97] [u o i e a]

[a e i o u]

Los números ASCII correspondientes a las vocales ordenados de acuerdo al orden alfabético de las mismas:

muestra prioriza lista [u o i e a] [117 111 105 101 97]

[97 101 105 111 117]

Los nombres de algunas personas priorizados de acuerdo a sus edades:

muestra prioriza lista [27 25 20 60 50] [daniel david cynthia victor ruth]

[cynthia david daniel ruth victor]


» Organiza


organiza ordena únicamente de acuerdo a los criterios indicados. Los criterios de organización se establecen mediante "listas clave".

Vamos a organizar unos pares de datos de acuerdo al primer elemento de cada par. Estos son los primeros elementos, la "lista clave":

muestra impon "primero [[b 3] [a 2] [c 0] [a 1]]

[b a c a]

muestra organiza [primero] [[b 3] [a 2] [c 0] [a 1]]

[[a 2] [a 1] [b 3] [c 0]]

Nótese que los pares no fueron ordenados también de acuerdo a los segundos elementos. Si se desea que los registros se organicen en base a los primeros y a los segundos se debería usar *ordena*, o usar:

muestra organiza [t0 t1] [[b 3] [a 2] [c 0] [a 1]]

[[a 1] [a 2] [b 3] [c 0]]

Si se desea organizar de acuerdo a los segundos:

muestra impon "t1 [[b 3] [a 2] [c 0] [a 1]]

[3 2 0 1]

muestra organiza [t1] [[b 3] [a 2] [c 0] [a 1]]

[[c 0] [a 1] [a 2] [b 3]]

Si se desea organizar los pares por los segundos en forma descendente:

muestra refleja organiza [t1] [[b 3] [a 2] [c 0] [a 1]]

[[b 3] [a 2] [a 1] [c 0]]

Si se desea organizar los pares de acuerdo a los primeros elementos y luego descendentemente de acuerdo a los segundos elementos:

muestra organiza [t0] refleja organiza [t1] [[b 3] [a 2] [c 0] [a 1]]

[[a 2] [a 1] [b 3] [c 0]]

Si se desea organizar esto:

[[07/2002 a] [03/2002 b] [07/2001 c]]

por fecha, puede escribirse:

muestra [[2002/07 a] [2002/03 b] [2001/07 c]]

[[2002/07 a] [2002/03 b] [2001/07 c]]

muestra impon "t0 [[07/2002 a] [03/2002 b] [07/2001 c]]

[07/2002 03/2002 07/2001]

muestra impon [desmarca "/ t0] [[07/2002 a] [03/2002 b] [07/2001 c]]

[[07 2002] [03 2002] [07 2001]]

muestra impon [refleja desmarca "/ t0] [[07/2002 a] [03/2002 b] [07/2001 c]]

[[2002 07] [2002 03] [2001 07]]

muestra organiza [[refleja desmarca "/ t0]] [[07/2002 a] [03/2002 b] [07/2001 c]]

[[07/2001 c] [03/2002 b] [07/2002 a]]