Estructuras de datos
Una estructura de datos es una colección de datos (normalmente de tipo simple) que se caracterizan por su organización y las operaciones que se definen en ellos. Por tanto, una estructura de datos vendrá caracterizada tanto por unas ciertas relaciones entre los datos, como las operaciones posibles en ella.
Listas
Una lista es una colección de elementos en un orden particular, y son el tipo de objeto colección ordenada más flexible en Python, pudiendo albergar objetos de cualquier tipo de datos, como números, cadenas u otras listas anidadas.
En Python, los corchetes ([ ]) indican una lista, y dentro, los elementos individuales se separan por comas. A continuación tiene unos ejemplos de posibles listas.
Elementos de una lista
Tenga en cuenta que al definir una lista se puede hacer referencia a otras variables. Esto será realmente útil.
Acceder a los elementos
Podemos acceder a cualquiera de los elementos de una lista indicando a Python la posición del elemento deseado. Para ello, escriba el nombre de la lista seguido del índice del elemento entre corchetes.
Cambiar, añadir y eliminar elementos
Para sustituir un elemento en la lista, use el nombre de la lista seguido del índice del elemento que desea modificar y del nuevo valor que desea.
En lugar de sustituir un elemento, puede interesarle añadir uno nuevo. La forma más sencilla de hacerlo es utilizando el método append ().
Si en lugar de añadir elementos, desea eliminarlos, hay distintas formas para hacerlo.
- Sentencia del. Esta se utiliza para eliminar un elemento en particular, del que conocemos la posición.
- Método remove. Este se utilizará si desconocemos la posición del elemento que deseamos eliminar, solo conocemos su valor.
Método remove
Tenga en cuenta que este método solo eliminará la primera aparición del valor. Si este está repetido en la lista, habrá que utilizar un bucle. Se verá como realizarlo en el siguiente apartado.
- Método pop (). Elimina el elemento de una lista, pero permite trabajar con él después de quitarlo.
Otras funciones
- Count (). Este método recibe un elemento como argumento, y cuenta la cantidad de veces que aparece en la lista.
-
Sort (). Este método ordena la lista alfabéticamente.
-
Reverse (). Este método invierte el orden original de la lista.
Método reverse ()
Observe que este método no genera un orden alfabético inverso, simplemente invierte el orden de la lista. Para realizarlo, tendría que utilizar previamente sort ().
-
Len (). Este método devuelve la longitud de la lista, es decir, el número de elementos que la componen.
-
min () / max (). Este método devuelve el valor mínimo o máximo de una lista.
Tuplas
Las tuplas en Python son una colección de varios elementos inmutables separados por comas, del mismo o diferente tipo.
¿En qué se diferencia de las listas? Aparte de la sintaxis, ya que en las listas se utilizan corchetes y en las tuplas paréntesis, la principal diferencia entre ambos es que los elementos de una tupla no se pueden cambiar una vez asignados; mientras que los elementos de una lista se pueden cambiar. Por tanto, siempre que necesitemos asegurarnos de que los datos permanezcan sin cambios y protegidos contra escritura, la tupla es la mejor opción.
En Python, los paréntesis () indican una tupla, y dentro, los elementos individuales se separan por comas. A continuación tiene unos ejemplos de posibles tuplas.
En realidad no es necesario escribir los paréntesis para indicar que se trata de una tupla, basta con escribir las comas, pero se recomienda escribirlas con paréntesis. Además Python siempre devuelve por salida la tupla con paréntesis.
Trabajar con tuplas
La mayoría de funciones disponibles para trabajar con las listas son válidas para trabajar con tuplas. Puede practicar alguno de los ejemplos del apartado anterior con este tipo de estructura.
Conjuntos/Set
Los conjuntos o set son una estructura de datos utilizada para almacenar elementos de distinto tipo. Estos tienen las siguientes características:
- Los elementos no tienen un orden específico.
- Sus elementos deben ser únicos, por lo que no puede haber elementos duplicados.
- Los elementos son inmutables. Al igual que en las tuplas, no admiten cambios.
¿Por qué utilizar este tipo de estructura? A diferencia de las listas, los conjuntos contienen funciones altamente optimizadas con el único propósito de verificar elementos comunes, diferencias entre conjuntos, etc.
En Python, las llaves ({ }) indican un conjunto, y dentro, los elementos individuales se separan por comas. A continuación tiene unos ejemplos de posibles conjuntos.
Añadir y eliminar elementos
Para agregar elementos, tenemos 2 métodos: add () y update ().
Para eliminar elementos, tenemos 2 métodos: remove () y discard ().
Elementos de un conjunto
Observe cómo los elementos no tienen un orden específico dentro del conjunto.
Trabajar con conjuntos
A continuación se muestran algunas de las funciones más útiles para trabajar con los conjuntos.
FUNCIÓN | DESCRIPCIÓN |
---|---|
clear() |
Elimina todos los elementos de un conjunto |
copy() |
Devuelve una copia de un conjunto |
difference() |
Devuelve un conjunto que contiene la diferencia entre dos o más conjuntos: los elementos que están en el primero pero no en los demás |
union() |
Devuelve un conjunto con todos los elementos que están en alguno de los conjuntos |
intersection() |
Devuelve la intersección entre los conjuntos: todos los elementos que están en ambos |
Veamos un ejemplo del uso de estas funciones.
Ejercicios
EJERCICIO 1. Escribir un programa que almacene en una lista los 5 tipos principales de bases nitrogenadas, y muestre por pantalla la última.
EJERCICIO 2. Escribir un programa que almacene en una lista una secuencia nucleotídica n = 10. Muestre por pantalla cuántas "A" aparecen.
EJERCICIO 3. Escribir un programa que almacene en dos conjuntos secuencias aminoacídicas. Muestre por pantallas los aminoácidos en común.
Respuesta
EJERCICIO 4. Basándose en el código anterior, esta vez cree un nuevo conjunto con todos los aminoácidos que están en al menos uno de los conjuntos.
Respuesta
Puede seguir practicando ejercicios más avanzados de listas en el apartado Estructuras de control.
DICCIONARIOS
Debe conocer que existe un último tipo de estructura de datos conocido como diccionario. Un diccionario es una colección de claves - valores en lugar de solo elementos. Cada clave está conectada a un valor, y podemos utilizar esa clave para acceder al valor asociada a la misma.
En Python, en la sintaxis de los diccionarios se utilizan las llaves ( { } ), presentando la siguiente estructura: