Iteración Sobre Índices
En la tarea anterior, proporcionaste una cantidad específica de elementos a la función range()
. Pero, ¿qué sucede si necesitas determinar la cantidad de manera dinámica? Aquí es donde la iteración por índices se vuelve esencial.
La iteración por índices es una técnica fundamental en Python que permite acceder y modificar elementos según sus posiciones dentro de estructuras de datos como listas o arreglos. Es especialmente útil para tareas que requieren control preciso sobre cada elemento, como actualizar niveles de inventario o gestionar datos de ventas en una tienda de comestibles.
Observa cómo Alex demuestra que iterar sobre los índices puede simplificar las operaciones en nuestro ejemplo de tienda de comestibles:
Iterar sobre los índices es útil cuando necesitas acceder tanto al índice como al valor de cada elemento en una lista. Cuando usamos range()
junto con len()
, estamos combinando dos funciones para generar una secuencia de números que corresponden a los índices de los elementos de la lista. Este método es particularmente útil en bucles donde necesitas acceder o modificar elementos según su posición.
Por ejemplo, este bucle for
accede al índice y al valor de cada elemento en la grocery_list
:
# List of grocery items grocery_list = ["Apples", "Bananas", "Carrots", "Cucumbers"] # Initialize a for loop to iterate over indexes for item in range(len(grocery_list)): print("Index:", item) print("Item:", grocery_list[item]) print("----") # Printing a divider line for clarity
Aplicación de ejemplo
Para aplicar un descuento a una lista de precios, es necesario modificar directamente los elementos de la lista. Usar un bucle simple como for cost in prices:
solo proporciona una copia de cada elemento, no una referencia al elemento real en la lista. Las modificaciones realizadas de esta manera no afectarían la lista original.
Para asegurarnos de actualizar directamente cada elemento en la lista prices
, utilizamos range(len(prices))
para iterar sobre los índices. Esto nos permite aplicar un factor de descuento a cada elemento:
# List of original prices of grocery items prices = [1.50, 2.00, 0.75, 3.25] # Discount factor (10% off each item) discount_factor = 0.10 # Iterate over the list of prices using range(len()) for cost in range(len(prices)): # Apply the discount by reducing the price prices[cost] -= prices[cost] * discount_factor print(f"New price of item {cost + 1}: ${prices[cost]}") print("Updated prices:", prices)
Nota
La fórmula
prices[cost] -= prices[cost] * discount_factor
es equivalente aprices[cost] = prices[cost] - prices[cost] * discount_factor
. Esto resta una parte del precio original (determinada por el descuento) de sí mismo, aplicando efectivamente el descuento.El
cost + 1
en la instrucción print ajusta el índice para que parezca comenzar desde1
en lugar de0
, haciéndolo más amigable para el usuario.
Este método asegura que la lista original prices
se actualice directamente con los nuevos precios descontados, reflejando los cambios de inmediato en todo el programa donde se utilice la lista prices
.
Swipe to start coding
Actualizar los niveles de inventario combinando datos de dos listas: stock_items
y shipment_received
. Luego, el resultado actualizará la lista stock_items
.
- Tanto
stock_items
comoshipment_received
son listas de listas, cada una contiene el nombre de un producto y su cantidad. - Utilizar un bucle
for
conrange()
ylen()
para iterar a través de los índices destock_items
. - Para cada producto, sumar la cantidad recibida al stock existente y actualizar el valor en
stock_items
.
Requisitos de salida
- Para cada producto, imprimir:
Stock updated for <product_name>: <updated_quantity> units
- Después de todas las actualizaciones, imprimir:
Final stock quantities:
Stock Items: <stock_items>
Solución
¡Gracias por tus comentarios!