Iterando Sobre Índices
Na tarefa anterior, você forneceu um número específico de itens para a função range()
. Mas e se for necessário determinar esse número de forma dinâmica? É aí que a iteração por índice se torna essencial.
A iteração por índice é uma técnica fundamental em Python que permite acessar e modificar elementos por suas posições em estruturas de dados como listas ou arrays. Ela é especialmente útil para tarefas que exigem controle preciso sobre cada elemento, como atualizar níveis de estoque ou gerenciar dados de vendas em um supermercado.
Veja como Alex demonstra que iterar sobre índices pode simplificar operações em nosso exemplo de supermercado:
Iterar sobre índices é útil quando é necessário acessar tanto o índice quanto o valor de cada elemento em uma lista. Quando usamos range()
com len()
, estamos combinando duas funções para gerar uma sequência de números correspondente aos índices dos elementos da lista. Esse método é particularmente útil em laços onde é necessário acessar ou modificar elementos com base em sua posição.
Por exemplo, este laço for
acessa o índice e o valor de cada elemento em 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
Aplicação de Exemplo
Para aplicar um desconto a uma lista de preços, é necessário modificar os elementos da lista diretamente. Utilizar um loop simples como for cost in prices:
apenas fornece uma cópia de cada item, e não uma referência ao item real na lista. Modificações feitas dessa forma não afetam a lista original.
Para garantir que cada elemento da lista prices
seja atualizado diretamente, utilizamos range(len(prices))
para iterar sobre os índices. Isso permite aplicar um fator de desconto 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)
Observação
A fórmula
prices[cost] -= prices[cost] * discount_factor
é equivalente aprices[cost] = prices[cost] - prices[cost] * discount_factor
. Isso subtrai uma parte do preço original (determinada pelo desconto) dele mesmo, aplicando efetivamente o desconto.O
cost + 1
na instrução de impressão ajusta o índice para que ele comece em1
ao invés de0
, tornando-o mais amigável para o usuário.
Esse método garante que a lista original prices
seja atualizada diretamente com os novos preços com desconto, refletindo as alterações imediatamente em todo o programa onde a lista prices
for utilizada.
Swipe to start coding
Atualização dos níveis de estoque combinando dados de duas listas: stock_items
e shipment_received
. O resultado atualizará a lista stock_items
.
- Tanto
stock_items
quantoshipment_received
são listas de listas, cada uma contendo o nome de um produto e sua quantidade. - Utilize um laço
for
comrange()
elen()
para iterar pelos índices destock_items
. - Para cada produto, some a quantidade recebida à quantidade existente em estoque e atualize o valor em
stock_items
.
Requisitos de Saída
- Para cada produto, exibir:
Stock updated for <product_name>: <updated_quantity> units
- Após todas as atualizações, exibir:
Final stock quantities:
Stock Items: <stock_items>
Solução
Obrigado pelo seu feedback!