6.1 Laço for
Em Python, laços sobre elementos de uma lista geralmente são feitos usando o
laço for
. Este é um dos métodos mais usados para iterar sobre uma lista,
permitindo que você execute um bloco de código para cada elemento na lista.
Fundamentos do laço for
O laço for
em Python passa por cada elemento da lista, atribuindo temporariamente
o valor do elemento atual a uma variável, especificada após a palavra-chave
for
. Exemplo:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
Iterar a lista em ordem inversa pode ser feito usando slices:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits[::-1]:
print(fruit)
6.2 Laço for
com índices
Além de iterar sobre uma lista usando o for
clássico, você pode iterar
usando o laço for
em combinação com a função range()
. Isso
permite não apenas trabalhar com os elementos, mas também com suas posições, o que
pode ser necessário ao realizar manipulações mais complexas com dados.
Fundamentos da iteração com índice
Para iterar sobre uma lista com acesso ao índice de cada elemento, você pode usar a abordagem a seguir:
my_list = ['a', 'b', 'c', 'd']
for i in range(len(my_list)):
print(f'Index: {i}, Element: {my_list[i]}')
Vantagens de usar índices
Usar índices em laços permite não apenas acessar cada elemento, mas também modificar os elementos da lista no local. Isso é especialmente útil quando você precisa modificar a lista durante a iteração.
Exemplo:
my_list = ['a', 'b', 'c', 'd']
for i in range(len(my_list)):
my_list[i] = my_list[i] * 2
Exemplos de manipulações complexas
Com índices, é fácil implementar algoritmos que exigem acesso simultâneo a vários elementos da lista, por exemplo, para comparar o elemento atual com o anterior ou o próximo:
Exemplo:
my_list = [3, 5, 2, 9, 4]
for i in range(1, len(my_list)):
if my_list[i] > my_list[i - 1]:
print(f'{my_list[i]} is greater than {my_list[i - 1]}')
6.3 Uso da função enumerate()
Em Python, a
função enumerate()
oferece uma maneira conveniente
de iterar sobre elementos de uma lista com acesso simultâneo aos seus índices.
Isso é especialmente útil quando você precisa processar tanto o índice quanto o valor
do elemento da lista dentro do laço.
Fundamentos da função enumerate()
A função enumerate()
envolve a lista em um objeto especial e
retorna um iterador que produz tuplas (pares de valores), consistindo no
índice e no valor do elemento:
my_list = ["apple", "banana", "cherry"]
for index, element in enumerate(my_list):
print(f'Index: {index}, Element: {element}')
Agora você tem não só o elemento, mas também o seu índice.
Vantagens do enumerate()
Usar enumerate()
torna o código mais legível e
permite evitar a necessidade de gerenciar manualmente índices com
range(len(...))
. Isso simplifica manipulações com os elementos da lista,
como modificação, acesso aos elementos e realização de verificações condicionais.
Exemplos de uso
enumerate()
é perfeito para tarefas onde é necessário
alterar elementos da lista simultaneamente ou comparar elementos com seus
índices:
my_list = ["apple", "banana", "cherry"]
for index, element in enumerate(my_list):
if index % 2 == 0:
print(f'Element {element} at even index {index}')
6.4 Laço while
Já falamos sobre o for
, agora vamos falar sobre o laço while
. Este laço também pode ser útil ao trabalhar com elementos de uma lista.
Lembre-se de que o laço while
começa sua execução verificando
uma condição. Se a condição for verdadeira, o corpo do laço é executado e, em seguida, a condição
é verificada novamente. O processo se repete até que a condição se torne
falsa.
Exemplo de iteração sobre uma lista
Suponha que você tenha uma lista de números e queira iterar por ela até encontrar um determinado valor:
numbers = [1, 2, 3, 4, 5, -1, 6]
i = 0
while i < len(numbers) and numbers[i] != -1:
print(numbers[i])
i += 1
Não é muito diferente do laço for
, né? Mas existem casos em que não
precisamos usar o índice para trabalhar com elementos da lista. Por exemplo, se temos
algumas tarefas armazenadas em uma lista, precisamos removê-las uma a uma,
executá-las e excluí-las da lista.
Esse código poderia ser esquematizado assim:
tasks = [1, 2, 3, 4, 5, -1, 6]
while len(tasks) > 0:
task = tasks.pop()
print(task)
GO TO FULL VERSION