Estructuras de Datos y Sentencias Iterativas
Autor
waldo hidalgo
Fecha de publicación
Se cubrirán los fundamentos de estructuras de datos en Python —listas, diccionarios, conjuntos— y cómo utilizarlas con sentencias iterativas como for
y while
y sentencias condicionales como if
, else
y elif
.
Una lista es una colección ordenada y modificable de elementos. Se dice que una lista es mutable debido a que sus elementos pueden ser alterados después de su creación. Para crear una lista se utiliza la notación []
donde cada elemento que pertenece a la lista se muestra dentro de los corchetes, también se utiliza la función list
que permite convertir iterables a listas. Para acceder a cada elemento de la lista se utiliza un índice númerico.
A continuación, se muestran ejemplos de creación de listas:
1lista_desde_corchetes = [1, 2, 3, "a", True]2lista_desde_cadena=list("Python")
1.1 Operaciones más comunes
Las operaciones más comunes en listas son las siguientes:
1lista=[1,2,3,4]23lista[1] # acceso a elementos de la lista4lista[2]=45 # modificación de valores de la lista5lista.append(5) # inserción de elemento al final de la lista6del lista[0] # eliminación de elemento en la lista7len(lista) # obtiene el largo de la lista
Un diccionario es una estructura de datos que permite almacenar información en pares clave-valor. Es muy útil cuando se necesita acceder a los datos por un identificador único en lugar de un índice numérico como en las listas.
Cada elemento del diccionario tiene:
- Una clave (key): puede ser
str
,int
,bool
, etc. Debe ser de tipo inmutable. - Un valor (value): puede ser cualquier tipo de dato.
La clave debe ser única. Si se repite una clave, se sobrescribe el valor anterior. Los diccionarios pueden ser creados utilizando paréntesis del tipo {}
o la función dict
.
2.1 Operaciones más comunes
Un ejemplo de creación de diccionario es el siguiente
1persona = {2 "nombre": "Ana",3 "edad": 30,4 "ciudad": "Santiago"5}
Un listado de las operaciones más comunes se muestra a continuación:
1persona = {2 "nombre": "Ana",3 "edad": 30,4 "ciudad": "Santiago",5 78:51,6} # creación de diccionario789persona[78] # acceso no seguro a valores del diccionario10persona.get(78,"no existe la key") # acceso seguro a valores del diccionario11persona["profesion"] = "Ingeniera" # Agregación de key y value12del persona["edad"] # eliminación de par key, value del diccionario
Un conjunto es una colección no ordenada, sin elementos duplicados y mutable (puede cambiarse después de su creación).
Son útiles cuando se necesita asegurar que no haya elementos repetidos o para realizar operaciones matemáticas como unión, intersección y diferencia.
La manera de crear conjuntos es utilizar la función set
sobre iterables o utilizar paréntesis {e1,e2,...,en}
teniendo la precaución de utilizarlo cuando el conjunto no esta vacío ya que esto {}
crea un diccionario.
3.1 Operaciones más comunes
1conjunto_vacio=set() # creación de set vacío2conjunto_desde_iterable=set('gato')3conjunto_desde_iterable.add('g') # inserción de elemento a set4conjunto_desde_iterable.remove('g') # eliminación de elemento del set
Una tupla es una colección ordenada e inmutable de elementos. A diferencia de las listas (list
), no se pueden modificar una vez creadas.
Son útiles para representar grupos fijos de datos, como coordenadas, registros o retornos múltiples de funciones.
Para crear tuplas se utiliza parentesis ()
, la función tuple
o la sintaxis comas sobre cada elemento sin paréntesis el1,el2,el3,...,eln
4.1 Operaciones más comunes
1tupla1=(4,5,6) # creación de tupla utilizando paréntesis2tupla2=4,5,6 # creación de tupla utilizando solo comas3tupla3=8, # creación de tupla de un solo elemento45tupla1[0] # acceso a elementos de la tupla por índices
El ciclo for
es utilizando para iterar sobre secuencias de elementos ya sea listas, diccionarios, set, tuplas, cadenas y similares, permitiendo recorrer cada uno de los elementos. A diferencia de otros lenguajes, el ciclo for
en Python permite recorrer cada elemento por defecto en vez de los índices.
La sintaxis básica es la siguiente:
1for variable in iterable:2 # bloque de código de contenido
Se utilizan adicionalmente las sentencias siguientes:
break
: para terminar el bucle prematuramentecontinue
: salta a la siguiente iteraciónelse
: se ejecuta solo si el bucle terminó sin break
Ejemplos
Recorrido de lista por elemento y por índice:
1nombres = ["Ana", "Luis", "Pedro"]23for nombre in nombres:4 print(f"Hola, {nombre}")56for i in range(0,len(nombres)):7 print(f"Hola, {nombres[i]}")
Recorrido de diccionario:
1persona = {"nombre": "Ana", "edad": 30}23for clave, valor in persona.items():4 print(f"{clave} → {valor}")
El ciclo while
permite ejecutar un bloque de código repetidamente mientras se cumpla una condición lógica.
Es útil cuando no se sabe cuántas veces se necesita repetir algo, pero sí se sabe que debe repetirse mientras una condición sea verdadera.
1while condición:2 # bloque de código de contenido
Mientras la condición sea True, el bloque se seguirá ejecutando. Las sentencias continue
, break
y else
siguen la misma lógica que las aplicadas en el ciclo for
.
Ejemplos
Ciclo while
con límite:
1contador = 023while contador < 5:4print("Contador:", contador)5contador += 1
Ciclo while
infinito:
1while True:2 print("Esto nunca termina")
Las sentencias condicionales permiten que un programa tome decisiones y ejecute diferentes bloques de código dependiendo de si una condición es verdadera (True
) o falsa (False
).
Se usan con las palabras clave if
, elif
y else
.
La sintaxis básica es la siguiente:
1if condición:2 # Bloque si la condición es verdadera3elif otra_condición:4 # Bloque si la otra condición es verdadera5else:6 # Bloque si ninguna condición se cumple
Operador | Significado | Ejemplo (x = 5, y = 3) |
---|---|---|
== | Igual a | x == y → False |
!= | Distinto de | x != y → True |
< | Menor que | x < y → False |
> | Mayor que | x > y → True |
<= | Menor o igual | x <= y → False |
>= | Mayor o igual | x >= y → True |
Operador | Significado | Ejemplo (x = 5) |
---|---|---|
and | Y (todas deben ser verdaderas) | x > 3 and x < 10 → True |
or | O (al menos una verdadera) | x < 3 or x > 4 → True |
not | Negación | not(x > 5) → True si x ≤ 5 |
Ejemplos
1nota = 8523if nota >= 90:4 print("Excelente")5elif nota >= 70:6 print("Aprobado")7else:8 print("Reprobado")
Las comprehensions son una forma concisa y elegante de crear estructuras de datos a partir de iterables (como listas, rangos o diccionarios) en una sola línea de código.
En lugar de usar varios for
y append
, es posible expresar la lógica de creación directamente.
Python admite comprehensions para:
list
→ lista por comprensiónset
→ conjunto por comprensióndict
→ diccionario por comprensión- (también
generator expressions
, pero se ven aparte)
La sintaxis es la siguiente cuando se filtra por condición:
1[expresión for elemento in iterable if condición]2
La sintaxis es la siguiente cuando en función de una condición se debe modificar el valor considerado:
1[expresion_if_true if condicion else expresion_if_false for elemento in iterable]2
Ejemplo
1cuadrados = [x**2 for x in range(5)] # creación de lista de cuadrados23pares = [x for x in range(10) if x % 2 == 0] # creación de lista de cuadrados pares
La sintaxis es la siguiente:
1{expresión for elemento in iterable if condición}2
La expresión condicional es similar a la de listas.
Ejemplo
1letras = {letra for letra in "banana"} # conjunto letras solo contiene letras únicas2
Para filtrar en base a una condición, la sintaxis es la siguiente:
1{clave: expresion_para_valor for elemento in iterable if condición_opcional}2
Cuando en función de una condición se debe modificar el valor considerado, la sintaxis es la siguiente:
1{clave: valor_si_verdadero if condición else valor_si_falso for elemento in iterable}2
Ejemplo
1clasificacion = {x: "par" if x % 2 == 0 else "impar" for x in range(6)}2
Artículos relacionados

Conceptos fundamentales de programación orientada a objetos: Clases, Objetos, Encapsulamiento, Herencia, Polimorfismo junto con actividades prácticas