Introducción a Python: Listas y tuplas

Conoce mi nuevo proyecto: Tutoriales de programación en Programador Plus

Este post es parte del Curso de introducción a Python 3:

  1. Introducción a Python: Porque programar con Python
  2. Instalación de Python 3 y IDLE
  3. Primer programa: “Hola Mundo”
  4. Tipos de datos en Python
  5. Asignación y uso de variables
  6. Valores booleanos
  7. Colecciones de datos en Python: Listas y Tuplas
  8. Condicionales: If, else, elif
  9. Ciclos en Python
  10. Definición y uso de funciones en Python
  11. Importación y uso de módulos en Python
  12. Uso de strings en Python

Introducción

Las colecciones son tipos de datos más complejos que los que vimos anteriormente, ya que dentro de estas podemos almacenar varios valores, que a su vez, no tienen que ser del mismo tipo de dato.

Dentro de Python existen las siguientes colecciones:

  • Listas
  • Tuplas
  • Diccionarios
  • Conjuntos

A diferencia de otros lenguajes, Python no cuenta con soporte para arreglos de forma nativa.

Dentro de esta entrada abordaremos las dos colecciones que más comunmente utilizarás en este curso: Listas y tuplas.

Colecciones de datos

Listas

Las listas en Python son colecciones de datos que pueden almacenar cualquier tipo de dato y son mutables, es decir, pueden ser modificadas para agregar, eliminar o cambiar algún valor dentro de su estructura.

Creación de una lista

Para crear una lista vacía en Python tenemos dos formas de hacerlo:

mi_lista = list()

o

mi_lista = []
En Python existen varias formas de generar una lista vacía.

Para crear una lista con elementos tan sólo tenemos que indicarlos dentro de los corchetes separados por coma:

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

lenguajes = ["Python", "Ruby", "Go", "PHP", "Javascript"]

Las listas también pueden contener tipos de datos que no sean iguales, por ejemplo, la siguiente lista conteniendo strings, int y floats:

l = ["a", 2, 28.3, "Python"]
Índices

Dentro de la lista cada elemento cuenta con un índice, comenzando por 0, que nos servirá para acceder a este. Por ejemplo, en la siguiente lista:

letras = ["a", "b", "c"]

La letra "a" tiene el índice 0, "b" tiene el índice 2 y "c" tiene el índice 3.

Para acceder a un elemento por su índice dentro de la lista usamos la siguiente sintaxis:

>>> print (letras[0])
"a"

Accediendo a un elemento por su índice en una lista también podemos realizar asignaciones que modifiquen su valor:

Es posible acceder a los elementos en una lista mediante sus índices

Python permite también utilizar índices negativos para acceder a la lista en orden inverso, por ejemplo, el índice -1 le corresponderá al último elemento, -2 al penúltimo y así sucesivamente:

En Python también contamos con índices negativos
Agregar elementos a una lista

Para agregar elementos a una lista utilizamos el método append(), y dentro de los parentesis el elemento que vamos a agregar, de la siguiente forma:

lista.append(elemento)

Al utilizar append() el elemento será agregado al final de la lista.

También es posible utilizar el método insert() para agregar elementos en cualquier posición de la lista, indicando la posición que tomará:

lista.insert(índice, elemento)
Eliminar elementos de una lista

Para eliminar elementos dentro de una lista existe el método pop(). Si queremos eliminar el último elemento de una lista, lo usamos de la siguiente manera:

lista.pop()

Si queremos eliminar un elemento en especifico, especificamos el índice:

lista.pop(indice)

Una importante diferencia entre append() e insert() y pop() es que mientras los primeros dos no regresan ningun valor, pop() si lo hace, ya que regresa el valor que haya sacado de la lista.

Por ejemplo, si hacemos

lista = [1,2,3,4,5]
x = lista.pop()

La variable x será igual al elemento que sale de la lista, es decir, x = 5.

Cortado de listas

En Python podemos crear «sublistas» a partir de una lista utilizando el cortado de listas, o slicing.

Para hacer esto utilizamos el cáracter : dentro de los corchetes, indicando el índice inferior y el índice superior del rango que queremos cortar.

Por ejemplo:

Como el índice superior es el limite del rango, este no será incluido dentro del corte, es decir, que si en una lista deseamos cortar desde el índice 2 hasta el índice 4 escribiremos lista[2:5].

Si queremos cortar desde el índice 0, no es necesario indicar el inicio del corte, tan sólo el limite superior:

De igual forma, para copiar hasta el final de la lista a partir de un índice, sólo tenemos que indicar el limite inferior:

También es posible utilizar índices negativos para esto, por ejemplo, si queremos incluir todos los elementos de la lista menos el último:

Alias y copiado de listas

Con las listas, a diferencia de los tipos de datos que vimos anteriormente, no podemos copiarlas de la siguiente manera:

x = [1,2,3]
y = x

Ya que al hacer esto estaremos creando un alias para la lista x. Es decir, ahora podemos llamar y modificar y, pero los cambios se verán reflejados en x, por lo que y será un segundo nombre para x, o un alias. Como puedes ver debajo:

Para realizar una copia de la lista, tendremos que hacer un cortado de la lista sin indicar ningun limite, de la siguiente forma:

Tuplas

Pasando a las tuplas, estas son muy similares a las listas en el aspecto de que podemos almacenar cualquier tipo de dato como lo hacemos con las listas, sin embargo, las tuplas no son mutables. Es decir que una vez que creemos una tupla ya no podremos modificarla.

Declaramos una tupla vacía de la siguiente forma:

mi_tupla = tuple()

o

mi_tupla = ()

Si queremos crear una tupla con elementos, los especificamos entre parentesis separados por comas:

mi_tupla = (1,2,3,4,5)

El uso de índices en una tupla es exactamente igual que en una lista:

>>>print( mi_tupla[2] )
3

De igual forma, podemos cortar una tupla:

>>>mi_tupla(1:3)
2,3

Al ser inmutables, las tuplas no tienen métodos para agregar o eliminar elementos.

Gracias a su inmutabilidad, las tuplas son considerablemente más pequeñas en memoria y por lo tanto son más rápidas de procesar para Python.

Conclusión

En resumen, las tuplas y listas nos permiten almacenar diferentes tipos de datos en un solo grupo. Su principal diferencia es que las listas son mutables, algo que las hace más flexibles, mientras que las tuplas son inmutables, lo que las hace más rápidas.

Con lo que hemos visto en esta entrada podemos conocer el uso básico de las tuplas y listas, sin embargo, existen muchas cosas que no he mencionado, como las listas dentro de otras listas, listas comprehensivas y la combinación con otras colecciones como los diccionarios, pero esos son temas que será mejor que revisites cuando cuentes con más conocimiento en Python.

En la siguiente entrada hablaré sobre los condicionales, sentencias que nos permiten ejecutar bloques de código selectivamente, sólo si se cumplen ciertas condiciones.

Noé Reyes Guerra

Soy un jóven aficionado a la tecnología, felíz usuario de Linux, Firefox y Android, partidario del software libre.

11 comentarios en “Introducción a Python: Listas y tuplas”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.