-
Introducción
En la clase 11, nos adentramos en el uso de los arreglos unidimensionales, también conocidos como listas en Python, que son estructuras de datos fundamentales para la manipulación de colecciones de elementos. A lo largo de esta lección, aprenderemos cómo definir y trabajar con listas, explorar su flexibilidad y cómo se pueden manipular de manera eficiente para almacenar datos heterogéneos. Además, profundizaremos en la sintaxis básica de los arreglos y en cómo acceder, modificar y recorrer sus elementos utilizando bucles, especialmente el bucle for. Esta clase también proporciona las bases para aplicar arreglos a problemas más complejos, mostrando su uso en situaciones como la filtración de datos y la iteración con condicionesr
El tema también se expandirá a cómo recorrer arreglos con bucles for, profundizando en cómo las estructuras de control pueden mejorar la eficiencia de nuestros programas al manipular grandes cantidades de datos de manera dinámica. A través de ejemplos prácticos y ejercicios, los estudiantes podrán familiarizarse con el uso de arreglos unidimensionales en conjunto con estructuras de control como break y continue, lo que les permitirá gestionar iteraciones de manera efectiva, eliminando elementos, modificando valores y aplicando condiciones específicas dentro de sus bucles. Esta clase es crucial para dominar uno de los aspectos más importantes de la programación en Python: el manejo de colecciones de datos y su procesamiento.
-
11.1. Arreglos Unidimensionales: Definición y Sintaxis
Los arreglos unidimensionales, también conocidos como listas en Python, son estructuras de datos fundamentales que permiten almacenar colecciones de elementos bajo un mismo nombre de variable. Estas estructuras son esenciales en la programación, ya que facilitan la manipulación y organización de datos relacionados de manera eficiente. En Python, las listas son especialmente populares debido a su versatilidad y facilidad de uso, lo que las convierte en una de las herramientas más utilizadas para almacenar secuencias de elementos.
Los arreglos unidimensionales en Python tienen varias características importantes que los hacen muy poderosos. En primer lugar, pueden almacenar un número arbitrario de elementos y permiten que estos elementos sean de diferentes tipos de datos. Esta capacidad de manejar datos heterogéneos es una de las grandes ventajas de las listas en Python, ya que no es necesario que todos los elementos sean del mismo tipo (por ejemplo, enteros, cadenas o incluso otras listas pueden convivir en una misma lista).
Una de las características más destacadas de los arreglos unidimensionales (listas) es que son dinámicos. Esto significa que puedes modificar una lista después de su creación sin restricciones. Puedes agregar nuevos elementos, eliminar los existentes o incluso cambiar el valor de los elementos ya almacenados. Esta flexibilidad es fundamental en muchos contextos, ya que no es necesario conocer el tamaño exacto de la lista desde el principio.
Las listas también permiten la inserción de elementos en cualquier posición dentro de la secuencia. Esto puede ser útil cuando se requiere una estructura de datos flexible y eficiente en términos de tiempo para realizar cambios en las posiciones de los elementos.
Definición y Sintaxis de ArreglosLa sintaxis básica para definir un arreglo unidimensional en Python es bastante simple. Usamos los corchetes [] para crear la lista y separamos los elementos con comas. Así, una lista puede contener cualquier tipo de dato: números, cadenas de texto, booleanos, etc.
Código
arreglo = [elemento1, elemento2, ..., elementoN]
Donde:
- arreglo es el nombre de la lista.
- elemento1, elemento2, ..., elementoN son los elementos de la lista, los cuales pueden ser de diferentes tipos de datos.
Por ejemplo, una lista con números enteros sería:
Código
numeros = [10, 20, 30, 40, 50]
Mientras que una lista con diferentes tipos de datos podría verse así:
Código
mi_lista = [10, "Hola", True, 3.14]
Esto significa que arreglo puede contener cualquier tipo de objeto y no está restringido a un tipo específico de datos. Además, las listas pueden ser de cualquier longitud, desde una lista vacía hasta una lista con millones de elementos.
Figura 1: Diagrama de flujo para la creación de un arreglo unidimensional Fuente: Creación de autor, D. Nicolalde. Figura 1: Diagrama de flujo para la creación de un arreglo unidimensional Fuente: Creación de autor, D. Nicolalde.
Descripción: Este diagrama muestra cómo se crea un arreglo unidimensional y cómo acceder a los elementos por índice.
Aprende más
En este vídeo te estaré mostrando arreglos unidimensionales en python en Windows, Linux e IOS. ¡Accede aquí!
Acceso y Modificación de ElementosEn Python, los elementos dentro de un arreglo unidimensional son accesibles mediante un índice, el cual comienza desde 0 para el primer elemento de la lista. El índice se coloca entre corchetes, justo después del nombre de la lista.
Por ejemplo, si queremos acceder al primer elemento de la lista numeros, lo hacemos de la siguiente forma:
Código
print(numeros[0]) # Imprime 10
De igual manera, podemos acceder a cualquier otro elemento de la lista usando su índice. Es importante recordar que los índices son basados en cero, lo que significa que el primer elemento tiene un índice de 0, el segundo elemento tiene un índice de 1, y así sucesivamente.
Python también permite el acceso a los elementos de la lista utilizando índices negativos. Un índice negativo comienza desde el último elemento de la lista, y va hacia atrás. Por ejemplo, numeros[-1] accedería al último elemento de la lista.
Código
print(numeros[-1]) # Imprime 50, el último elemento
Ejemplo de Acceso y Modificación de ElementosAdemás de acceder a los elementos, también es posible modificar un elemento en una lista. Para cambiar un valor de la lista, simplemente asignamos un nuevo valor a la posición deseada:
Código
arreglo = [10, 20, 30, 40, 50] print(arreglo[2]) # Imprime el tercer elemento de la lista, que es 30 # Modificar un elemento en la posición 3 arreglo[3] = 35 print(arreglo) # Imprime [10, 20, 30, 35, 50]
Salida:
Resultado
30
[10, 20, 30, 35, 50]
Figura 2: Diagrama de flujo para modificar elementos en un arreglo Fuente: Creación de autor, D. Nicolalde. Figura 2: Diagrama de flujo para modificar elementos en un arreglo Fuente: Creación de autor, D. Nicolalde.
Descripción: Este diagrama ilustra cómo acceder y modificar los elementos de un arreglo utilizando índices.
-
11.2. Recorrer Arreglos con Bucles For
El bucle for en Python es la estructura más utilizada para recorrer los elementos de un arreglo o lista. Permite realizar acciones repetitivas de forma eficiente, iterando sobre cada uno de los elementos de la secuencia (ya sean listas, tuplas, cadenas de texto o cualquier otro tipo de colección iterable). En lugar de utilizar índices manuales, el bucle for maneja automáticamente cada elemento, lo que simplifica la escritura del código y lo hace más limpio y legible.
Sintaxis Básica del Bucle ForLa sintaxis para recorrer un arreglo con un bucle for es:
Código
for item in arreglo: # Código a ejecutar para cada item
- item: Es la variable temporal que toma el valor de cada elemento del arreglo durante cada iteración del bucle.
- arreglo: Es la lista o secuencia que estamos recorriendo.
- Cuerpo del bucle: El bloque de código que se ejecuta en cada iteración, donde se puede realizar cualquier operación sobre el elemento actual del arreglo.
Figura 3: Diagrama de flujo para recorrer un arreglo con un bucle for Fuente: Creación de autor, D. Nicolalde. Figura 3: Diagrama de flujo para recorrer un arreglo con un bucle for Fuente: Creación de autor, D. Nicolalde.
Descripción: Este diagrama muestra cómo un bucle for recorre cada elemento de un arreglo y ejecuta un bloque de código para cada uno de ellos.
Ejemplo: Recorrer una Lista de NúmerosCódigo
arreglo = [1, 2, 3, 4, 5] for numero in arreglo: print(numero)
Salida:
Resultado
1
2
3
4
5En este ejemplo, el bucle for recorre cada número de la lista arreglo y lo imprime en la consola. El valor de item (en este caso numero) se toma del arreglo en cada iteración, lo que permite realizar operaciones sobre cada número individualmente.
El bucle for no solo se puede utilizar para recorrer listas simples, sino que también se puede aplicar a estructuras más complejas como listas de listas (matrices), diccionarios y tuplas.
Ejemplo: Recorrer Arreglo con Condiciones
En ocasiones necesitamos no solo recorrer los elementos de un arreglo, sino también aplicar condiciones sobre esos elementos. A continuación, mostramos un ejemplo donde se filtran los números mayores a 20.
Código
arreglo = [10, 20, 30, 40, 50] for numero in arreglo: if numero > 20: print(f"El número {numero} es mayor que 20.")
Salida:
Resultado
El número 30 es mayor que 20.
El número 40 es mayor que 20.
El número 50 es mayor que 20.En este caso, el bucle for recorre cada número de la lista y solo imprime aquellos que son mayores que 20. Esto demuestra cómo podemos aplicar condiciones dentro de un bucle para filtrar los resultados.
Figura 4: Diagrama de flujo de un bucle for con condición Fuente: Creación de autor, D. Nicolalde. Figura 4: Diagrama de flujo de un bucle for con condición Fuente: Creación de autor, D. Nicolalde.
Descripción: Este diagrama muestra cómo se usa un bucle for con una condición que filtra los elementos durante la iteración.
Ejemplo: Recorrer una Lista de DiccionariosEn situaciones más complejas, puede ser necesario trabajar con listas que contienen diccionarios. Estos se utilizan para almacenar múltiples pares de clave-valor. A continuación, mostramos cómo recorrer una lista de diccionarios y extraer información de ellos. Supongamos que tenemos una lista de diccionarios que contienen información sobre varios estudiantes. Cada diccionario tiene claves como nombre y edad. A continuación, un ejemplo de cómo recorrer esta lista de diccionarios:
Código
personas = [ {'nombre': 'Juan', 'edad': 28}, {'nombre': 'Ana', 'edad': 22}, {'nombre': 'Luis', 'edad': 34} ] for persona in personas: print(f"Nombre: {persona['nombre']}, Edad: {persona['edad']}")
Salida:
Resultado
Nombre: Juan, Edad: 28
Nombre: Ana, Edad: 22
Nombre: Luis, Edad: 34Este ejemplo demuestra cómo acceder a las claves de un diccionario dentro de una lista utilizando un bucle for, lo que nos permite extraer y trabajar con datos más estructurados.
Ejemplo: Bucle For con Arreglo AnidadoLos bucles for también se pueden usar para recorrer arreglos bidimensionales, como matrices. Aquí se muestra un ejemplo donde recorremos una matriz (una lista de listas).
Código
arreglo = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] for fila in arreglo: for numero in fila: print(numero, end=" ") print()
Salida:
Resultado
1 2 3
4 5 6
7 8 9Este ejemplo utiliza dos bucles for anidados para recorrer un arreglo bidimensional. El primer bucle for recorre las filas de la matriz, y el segundo bucle for recorre los elementos de cada fila. Esto permite imprimir todos los elementos de la matriz de forma ordenada.
Figura 5: Diagrama de flujo de un bucle for anidado Fuente: Creación de autor, D. Nicolalde. Figura 5: Diagrama de flujo de un bucle for anidado Fuente: Creación de autor, D. Nicolalde.
Descripción: Este diagrama muestra cómo se utilizan dos bucles for anidados para recorrer un arreglo bidimensional y procesar sus elementos.
En esta clase hemos aprendido cómo trabajar con arreglos unidimensionales en Python, utilizando bucles for para recorrer sus elementos y realizar operaciones con ellos. A lo largo de los ejemplos, vimos cómo aplicar condiciones dentro de los bucles, cómo trabajar con listas de diccionarios, y cómo utilizar bucles anidados para recorrer estructuras más complejas, como arreglos bidimensionales. Los bucles for y el manejo de arreglos son esenciales para trabajar con colecciones de datos de manera eficiente.
En la tabla 1 se detalla otros métodos útiles que se pueden aplicar a las listas unidimensionales en Python, ampliando la variedad de operaciones que los estudiantes pueden realizar en sus arreglos.
Método Descripción Ejemplo de Uso extend() Añade todos los elementos de un iterable al final de la lista. numeros.extend([60, 70]) index() Devuelve el índice del primer elemento que coincide con el valor dado. numeros.index(25) count() Devuelve el número de veces que un valor aparece en la lista. numeros.count(25) sort() Ordena los elementos de la lista en orden ascendente o descendente. numeros.sort(reverse=True) reverse() Invierte el orden de los elementos en la lista. numeros.reverse() Tabla 1: Métodos Adicionales para Manipular Arreglos Unidimensionales Fuente: Creación de autor, D. Nicolalde. Métodoextend()
Añade todos los elementos de un iterable al final de la lista.
Ejemplo: numeros.extend([60, 70])Métodoindex()
Devuelve el índice del primer elemento que coincide con el valor dado.
Ejemplo: numeros.index(25)Métodocount()
Devuelve el número de veces que un valor aparece en la lista.
Ejemplo: numeros.count(25)Métodosort()
Ordena los elementos de la lista en orden ascendente o descendente.
Ejemplo: numeros.sort(reverse=True)Métodoreverse()
Invierte el orden de los elementos en la lista.
Ejemplo: numeros.reverse()La tabla 1 proporciona información sobre otros métodos importantes que pueden ser utilizados en listas. Los métodos como extend(), index(), count(), sort() y reverse() son herramientas clave para manipular las listas de manera más avanzada, permitiendo operaciones adicionales como agregar elementos desde otro iterable, buscar valores específicos, contar repeticiones, y modificar el orden de los elementos.
Aunque en Python las listas son una de las estructuras más comunes, existen otras alternativas para trabajar con colecciones de datos, como los arreglos de la librería NumPy. En la tabla 2 se compara las listas de Python y los arreglos de NumPy en términos de rendimiento y funcionalidad.
Característica Listas en Python Arreglos de NumPy Mutabilidad Sí Sí Soporte de Tipos de Datos Heterogéneo Homogéneo (todos los elementos deben ser del mismo tipo) Operaciones Matemáticas No optimizadas Optimizadas, permitiendo operaciones matemáticas eficientes sobre grandes volúmenes de datos Uso en Cálculos Numéricos Limitado Especialmente diseñado para operaciones numéricas y científicas Velocidad Más lenta para grandes cantidades de datos Mucho más rápido debido a su implementación en C Funcionalidades Avanzadas Básicas (agregar, eliminar, acceder) Funciones matemáticas, estadísticas, álgebra lineal, etc. Tabla 2: Diferencias Entre Listas y Arreglos de NumPy Fuente: Creación de autor, D. Nicolalde. MutabilidadListas en Python: Sí
Arreglos de NumPy: Sí
Soporte de Tipos de DatosListas en Python: Heterogéneo
Arreglos de NumPy: Homogéneo (todos los elementos deben ser del mismo tipo)
Operaciones MatemáticasListas en Python: No optimizadas
Arreglos de NumPy: Optimizadas, permitiendo operaciones matemáticas eficientes sobre grandes volúmenes de datos
Uso en Cálculos NuméricosListas en Python: Limitado
Arreglos de NumPy: Especialmente diseñado para operaciones numéricas y científicas
VelocidadListas en Python: Más lenta para grandes cantidades de datos
Arreglos de NumPy: Mucho más rápido debido a su implementación en C
Funcionalidades AvanzadasListas en Python: Básicas (agregar, eliminar, acceder)
Arreglos de NumPy: Funciones matemáticas, estadísticas, álgebra lineal, etc.
La tabla 2 destaca las diferencias clave entre las listas de Python y los arreglos de NumPy. Las listas son más flexibles, pero menos eficientes para operaciones matemáticas, mientras que los arreglos de NumPy están diseñados para realizar cálculos numéricos y científicos de manera más eficiente, especialmente cuando se trabajan con grandes cantidades de datos. Esto puede ser útil cuando se comienza a explorar bibliotecas de Python para la ciencia de datos y el análisis numérico.
Uso de Break y Continue en un Bucle ForEn la programación, especialmente al trabajar con bucles, es común necesitar más control sobre cómo y cuándo se deben ejecutar las iteraciones. Los comandos break y continue son herramientas esenciales en Python para modificar el flujo de ejecución dentro de un bucle, permitiendo que el programa se comporte de manera más eficiente y flexible. A continuación, exploraremos en detalle cómo funciona cada uno de estos comandos dentro de un bucle for.
Uso de break: Salir del bucle prematuramenteEl comando break permite salir de un bucle antes de que termine todas sus iteraciones. Esto se utiliza cuando se cumple una condición específica y, en ese momento, ya no es necesario seguir ejecutando el bucle. Por ejemplo, si estamos buscando un número en una lista y lo encontramos, no es necesario seguir buscando. Entonces, podemos usar break para detener el bucle inmediatamente. Este comando es útil cuando sabemos que una vez que se cumpla una condición, no hay necesidad de seguir procesando el resto de los elementos. Ejemplo con break:
Código
# Lista de números numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9] # Recorrer la lista con un bucle for for numero in numeros: if numero == 5: break # Detener el bucle cuando el número sea 5 print(numero)
Salida:
Resultado
1
2
3
4
Uso de continue: Omitir la iteración actual y continuar con la siguienteEl comando continue permite saltar la iteración actual del bucle y continuar con la siguiente. Es útil cuando, bajo ciertas condiciones, no queremos ejecutar todo el código dentro del bucle para esa iteración específica. En lugar de detener todo el bucle (como con break), continue solo omite la parte de código que sigue en la iteración actual y pasa a la siguiente iteración del bucle.
Esto se utiliza cuando se necesita saltar ciertos elementos de la secuencia bajo una condición específica. Por ejemplo, si estamos recorriendo una lista de números y queremos omitir los números pares, podemos usar continue para saltarlos y seguir con la siguiente iteración.
Ejemplo con continue:
Código
# Lista de números numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9] # Recorrer la lista con un bucle for for numero in numeros: if numero % 2 == 0: continue # Saltar los números pares print(numero)
Salida:
Resultado
1
3
5
7
9
Ejemplo combinado de break y continue en un bucle for:Código
# Lista de números numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9] # Recorrer la lista con un bucle for for numero in numeros: if numero == 5: break # Detener el bucle cuando el número sea 5 if numero % 2 == 0: continue # Saltar los números pares print(numero)
Salida:
Resultado
1
3En este caso, el bucle se detiene cuando encuentra el número 5, debido al break, y omite los números pares debido al continue.
Aprende más
En este vídeo se muestran ejemplos de arreglos unidimensionales ¡Accede aquí!
Profundiza más
Este recurso te ayudará a enfatizar sobre Estructuras de Control en Conjunto y Arreglos ¡Accede aquí!
-
-
-
Actividades
-
Make attempts: 1
-
Estructuras de control en conjunto y arreglos (Parte 1)
-
Make attempts: 1