Cuando aprendemos a programar, una de las primeras cosas que vemos es que existen diferentes tipos de datos.
Podemos guardar números, textos, valores booleanos y otros datos dentro de variables. Pero muchas veces un programa no necesita manejar un solo dato, sino un conjunto de datos.
Para eso existen las estructuras de datos.
Qué son las estructuras de datos
Una estructura de datos permite agrupar varios valores dentro de una misma variable.
Por ejemplo, si tenemos una carrera con varios participantes, podríamos guardar cada nombre en una variable diferente.
primero = "Elena" segundo = "Raúl" tercero = "Juan" cuarto = "Ana" quinto = "Isabel"
Pero también podemos guardar todos esos nombres dentro de una sola variable usando una lista.
participantes = ["Elena", "Raúl", "Juan", "Ana", "Isabel"]
De esta forma trabajamos con un conjunto de datos de manera más ordenada.
Estructuras secuenciales
Las estructuras secuenciales son aquellas donde los datos tienen un orden específico.
En muchos lenguajes de programación se habla de arrays. Dependiendo del lenguaje, un array puede tener un tamaño fijo o exigir que todos sus elementos sean del mismo tipo.
En Python, las listas son más flexibles. Pueden contener elementos de distintos tipos y permiten añadir o eliminar valores.
Listas en Python
Una lista es una estructura de datos secuencial que permite guardar varios valores dentro de una misma variable.
Se define usando corchetes y separando los elementos con comas.
numeros = [1, 2, 3, 4, 5]
También podemos crear una lista con textos.
participantes = ["Elena", "Raúl", "Juan", "Ana", "Isabel"]
Acceder a elementos de una lista
Para acceder a un elemento de una lista usamos su índice.
En Python, los índices empiezan en 0. Eso significa que el primer elemento tiene índice 0, el segundo tiene índice 1, y así sucesivamente.
numeros = [1, 2, 3, 4, 5] print(numeros[0])
Este código muestra el primer elemento de la lista.
Si queremos acceder al tercer elemento, usamos el índice 2.
print(numeros[2])
Índices negativos
Python también permite usar índices negativos para acceder a los elementos desde el final de la lista.
numeros = [1, 2, 3, 4, 5] print(numeros[-1])
El índice -1 devuelve el último elemento.
El índice -2 devuelve el penúltimo elemento.
print(numeros[-2])
Esto es útil cuando no sabemos exactamente cuántos elementos tiene una lista, pero queremos acceder a los últimos valores.
Slicing en Python
El slicing permite obtener una parte de una lista.
Para hacerlo, indicamos el índice inicial y el índice final dentro de corchetes.
numeros = [1, 2, 3, 4, 5] print(numeros[0:4])
Este código devuelve los elementos desde el índice 0 hasta el índice 4, sin incluir el índice 4.
El resultado sería:
[1, 2, 3, 4]
También podemos añadir un tercer valor para indicar el salto.
print(numeros[0:4:2])
Esto toma los elementos desde el índice 0 hasta el índice 4, avanzando de dos en dos.
Operaciones básicas con listas
Con las listas podemos realizar varias operaciones útiles.
Concatenar listas
Podemos sumar dos listas para unirlas.
lista1 = [1, 2, 3] lista2 = [4, 5, 6] resultado = lista1 + lista2 print(resultado)
El resultado será una lista con los elementos de ambas listas.
Obtener el tamaño de una lista
La función len() permite saber cuántos elementos tiene una lista.
lista1 = [1, 2, 3] print(len(lista1))
Comprobar si un elemento está en una lista
El operador in permite verificar si un elemento existe dentro de una lista.
lista1 = [1, 2, 3, 4, 5, 6] print(4 in lista1)
Si el elemento está en la lista, devuelve True. Si no está, devuelve False.
Tuplas en Python
Una tupla es una estructura parecida a una lista, pero con una diferencia importante: es inmutable.
Esto significa que no podemos añadir, eliminar ni modificar elementos después de crearla.
Las tuplas se definen usando paréntesis.
tupla = (1, 2)
En cambio, una lista se define con corchetes.
lista = [1, 2]
Podemos acceder a los elementos de una tupla usando índices, igual que con una lista.
print(tupla[0])
Pero si intentamos modificar un elemento, Python mostrará un error.
tupla[0] = 5
Las tuplas suelen utilizarse cuando queremos representar datos que no deberían cambiar.
Strings como estructuras secuenciales
Un string representa texto, pero también puede entenderse como una estructura secuencial.
Un string es una cadena de caracteres. Cada carácter puede ser una letra, un número o un símbolo.
frase = "Esto es un string"
Como los strings son secuencias, podemos usar varias operaciones parecidas a las listas.
Obtener la longitud de un string
frase = "Esto es un string" print(len(frase))
Acceder a un carácter
print(frase[0])
Esto devuelve el primer carácter del texto.
Comprobar si un carácter está en el string
print("x" in frase)
El resultado será True o False, dependiendo de si el carácter existe dentro del texto.
Métodos de los strings
Los strings tienen métodos propios que permiten trabajar con textos.
Por ejemplo, el método upper() convierte el texto a mayúsculas.
frase = "Esto es un string" print(frase.upper())
Este tipo de operaciones son específicas de las cadenas de texto.
Sets en Python
Un set, o conjunto, es una estructura de datos no secuencial.
Esto significa que el orden de los elementos no es lo más importante.
Además, un set no permite elementos duplicados.
Si tenemos una lista con valores repetidos y la convertimos en set, los duplicados se eliminan.
numeros = [1, 2, 2, 3, 4, 4, 5] conjunto = set(numeros) print(conjunto)
Los sets se utilizan mucho para representar conjuntos en el sentido matemático.
Operaciones con sets
Con los sets podemos realizar operaciones de conjuntos.
Diferencia entre conjuntos
set1 = set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) set2 = set([0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]) print(set1 - set2)
Esto muestra los elementos que están en set1 pero no en set2.
Intersección
La intersección muestra los elementos que están en ambos conjuntos.
print(set1 & set2)
Unión
La unión muestra todos los elementos de ambos conjuntos sin duplicados.
print(set1 | set2)
Diccionarios en Python
Un diccionario es una estructura de datos no secuencial que almacena información mediante pares de clave y valor.
En una lista accedemos a los elementos usando índices. En un diccionario accedemos usando una clave.
Un diccionario se define con llaves.
persona = { "nombre": "Juan", "edad": 30, "apellido": "López" }
En este ejemplo, nombre, edad y apellido son claves. Los valores son Juan, 30 y López.
Acceder a valores de un diccionario
Para acceder a un valor, usamos su clave.
print(persona["nombre"])
Esto devuelve el valor asociado a la clave nombre.
Operaciones básicas con diccionarios
Obtener la cantidad de elementos
Podemos usar len() para saber cuántos pares clave-valor tiene un diccionario.
print(len(persona))
Comprobar si existe una clave
El operador in permite comprobar si una clave existe dentro del diccionario.
print("nombre" in persona)
Esto devuelve True, porque nombre es una clave del diccionario.
Si buscamos un valor como Juan, el resultado será False, porque in comprueba claves, no valores.
print("Juan" in persona)
Resumen de estructuras de datos en Python
| Estructura | Características | Ejemplo |
|---|---|---|
| Lista | Secuencial, mutable y ordenada | [1, 2, 3] |
| Tupla | Secuencial, ordenada e inmutable | (1, 2, 3) |
| String | Secuencia de caracteres | "Hola" |
| Set | No secuencial y sin duplicados | set([1, 2, 3]) |
| Diccionario | Pares de clave y valor | {"nombre": "Juan"} |
Conclusión
Las estructuras de datos permiten agrupar y organizar información dentro de un programa.
En Python encontramos estructuras como listas, tuplas, strings, sets y diccionarios.
Las listas y strings son secuenciales, las tuplas son secuenciales e inmutables, los sets no permiten duplicados y los diccionarios permiten trabajar con pares de clave y valor.
Conocer estas estructuras es fundamental para escribir programas más organizados y manejar datos de forma más eficiente.



