lunes, 5 de mayo de 2014

Slicing en las listas de Python

El slicing es una manera de tratar los datos almacenados en las listas de python por tramos, es decir, acceder a los datos de las listas sin tener que leerlas enteras.

Ejemplo 1 :

Mostraremos el valor de la lista, comprendido entre dos valores.
Lista = ['Luis', 'Manolo', 'Roberto', 'Anselmo', 'Jorge']
print Lista

['Luis', 'Manolo', 'Roberto', 'Anselmo', 'Jorge']
#Tenemos creada la lista, veamos el slicing

print Lista[1:3]

['Manolo', 'Roberto']

Observamos que al ordenar la impresión del tramo de lista [1:3] , nos muestra realmente el valor 1 y 2 de la lista, son los valores de inicio (1), y final (3), tendremos que recordar que el valor final no se mostrará.

Ejemplo 2 :

Mostraremos los valores sin poner el parámetro de inicio

Lista = ['Luis', 'Manolo', 'Roberto', 'Anselmo', 'Jorge']

print Lista[:3]

['Luis', 'Manolo', 'Roberto']

Observamos que esta vez al no definir el parámetro de inicio, python empieza desde el valor 0 hasta el valor 3, recordemos que el valor final no se muestra.

Ejemplo 3 :

Mostraremos los valores, desde la mitad de la listas hasta el final

Lista = ['Luis', 'Manolo', 'Roberto', 'Anselmo', 'Jorge']

print Lista[3:]

['Anselmo', 'Jorge']

Python si muestra el valor indicado como inicio, en este caso el 3 'Anselmo'.

Ejemplo 4 :

Primero añadiremos un par de nombres más a la lista y luego ordenaremos que nos muestre un tramo de lista, pero con saltos dentro de los valores de la lista.


Lista = ['Luis', 'Manolo', 'Roberto', 'Anselmo', 'Jorge']
Lista.append('Mariano')
Lista.append('Joselito')
Lista.append('Jacinto')
print Lista
['Luis', 'Manolo', 'Roberto', 'Anselmo', 'Jorge', 'Mariano', 'Joselito', 'Jacinto']

print Lista[2:8:2]

['Roberto', 'Jorge', 'Joselito']

En este caso, python genera una lista seleccionando los valores desde el 2 al 8 [2:8] y luego, dentro de esa lista, va dando saltos de 2 en 2 y es lo que finalmente muestra. [Inicio:Fin:Salto].

Ejemplo 5 :

Dar saltos por todos los valores de la lista

Lista = ['Luis', 'Manolo', 'Roberto', 'Anselmo', 'Jorge', 'Mariano', 'Joselito', 'Jacinto']

#Saltos de 2 en 2
print Lista[::2]

['Luis', 'Roberto', 'Jorge', 'Joselito']

#Saltos de 3 en 3

print Lista[::3]

['Luis', 'Anselmo', 'Joselito']

Al no iniciar los valores de Inicio/Fin, python genera la lista completa y va dando saltos de 2 en 2 y mostrando los valores.

Ejemplo 6 :

Modificar los valores de la lista usando slicing

Lista = ['Luis', 'Manolo', 'Roberto', 'Anselmo', 'Jorge', 'Mariano', 'Joselito', 'Jacinto']

Lista[0:2] = [1,2]

print Lista

[1, 2, 'Roberto', 'Anselmo', 'Jorge', 'Mariano', 'Joselito', 'Jacinto']

Indicamos que los valores de la lista 'Lista' 0 y 1, deben cambiar a 1 y 2.

No hay comentarios:

Publicar un comentario