En esta entrega vamos a continuar estudiando las listas, que ya comenzamos en la anterior. Vamos a ver cómo ordenarlas, así como algunas herramientas útiles para la gestión de cadenas.
Listas (II)
Ordenación de una Lista
Ordenar listas es uno de los problemas más clásicos de la informática. Su importancia es tanta, que no se han dejado de investigar métodos que puedan mejorar la eficiencia de dicha operación. Aunque existen muchos métodos, aquí vamos a explicar el conocido como método de la burbuja, que, aunque resulta ineficiente en términos de coste computacional, es muy sencillo de implementar.
Nuestro objetivo es ordenar la siguiente lista:

- Comenzamos comparando los dos primeros elementos, [0] y [1]. Si estos están ordenados, los dejamos tal cual, y si no se intercambian. En este caso, como 2 es menor que 5, no hacemos nada.

- A continuación realizamos la misma acción con los siguientes, [1] y [2]. Al ser 5 mayor que 4, los intercambiamos.

- Seguimos realizando las mismas acciones, con los pares [2][3] y [3][4]. Llegados a este punto, la lista todavía no está ordenada. Pero, con estos pasos, nos hemos asegurado que el elemento mayor se sitúe al final de la misma.

- Ahora, se vuelven a realizar las mismas acciones, pero como el último elemento ya está ordenado, se omite.

- Ahora ya tenemos los dos últimos elementos en orden. Así que, como supondrás, volvemos a realizar las mismas acciones, pero omitiendo los dos últimos elementos.

- Y una última vez, omitiendo los tres últimos.

- ¡TACHAN! La lista está ordenada.

Ahora tocaría traducir el anterior algoritmo a código en Python. No obstante, dado que el diseño del algoritmo ya está hecho, creo que es mejor dejarlo como uno de los ejercicios del curso. ¡Intenta hacerlo por tu cuenta antes de ver la solución!
Ejercicio 08
Crea un programa que implemente el ejemplo mostrado anteriormente para ordenar una lista mediante el método de la burbuja.
Solución
Cadenas y Listas
Como ya se ha comentado, una cadena es un tipo especial de lista donde todos sus elementos son caracteres. Muchas veces, nos conviene convertir una lista en cadena o viceversa. Para ello, Python cuenta con una serie de utilidades que nos facilitan la vida.
Lista de Palabras
Algo que se suele realizar bastante es la generación de una lista con todas las palabras de una oración (por ejemplo, para contarlas después). En Python contamos con la función split(). Esta función nos devuelve una lista con todas las palabras de una cadena separadas por espacios (o el carácter que nosotros le indiquemos).
cadena = "a b c d" lista = cadena.split()
El anterior código nos crearía la lista [«a», «b», «c», «d»].
Unir Palabras en una Cadena
La función join() hace lo contrario a split(). En este caso, unirá en una cadena las palabras contenidas en una lista, utilizando para ello el carácter sobre el cual se ejecute la función. Para obtener la cadena original anterior, haríamos lo siguiente:
cadena = " ".join(lista)
Lista de caracteres
Existe una última función útil, la cual nos genera una lista con todos los caracteres de una cadena. Se trata de la función list(). El siguiente código nos generaría la lista [«a», «b», «c»]:
lista = list("abc")
Las funciones join(), split() y list() son muy útiles a la hora de trabajar con Python, así que asegúrate de no olvidarlas.
Ejercicio 09
Escribe un programa que, tomando como origen un texto con un número indeterminado de espacios entre las palabras, devuelva el mismo texto con únicamente espacios simples.
Solución
Con esto terminamos de ver todo lo referente a las listas. Ha sido una entrada más corta que las anteriores, pero quería separar en una propia la ordenación de listas, por la importancia que tiene.
¡Nos leemos!
#04 / Fundamentos de la Programación
- Introducción a la Programación
- Tipos de Datos
- Estructuras de Control (If/Else)
- Estructuras de Control (Bucles)
- Estructuras de Datos (Listas)
- Estructuras de Datos (Ordenación)
- Estructuras de Datos (Matrices)
- Funciones
- Funciones (Recursividad)
- Estructuras de Datos (Registros)
- Ficheros
- ANEXO – Ejercicios Resueltos
Proyecto Final – LIFE, el Juego de la Vida
¿Quieres estar al día de todo lo publicado en el blog?
Para ello puedes suscribirte a mi canal RSS y/o seguirme en mis Redes Sociales.
