Vem tudo isto a propósito de um comentário feito por um de vocês a uma solução minha de um dos problemas do exame normal. Esse comentário, fez-me pensar que ainda há quem não sabe como se pode percorrer uma sequência. Embora posteriormente tenha ficado convencido não ser esse o caso do vosso colega resolvi manter este post. Vamos então a isso usando um exemplo simples com listas. O modo de percorrer a lista depende do que queremos fazer.
Exemplo A: imprimir os elementos nas posições ímpares:
1.
def
percorre_lista_a(lista):
2.
""" Imprimir os elementos nas posições ímpares."""
3.
for
indice
in
range(len(lista)):
4.
if
indice
%
2
=
=
1
:
5.
print
lista[indice]
A referência é feita às posições e só nos é pedido para imprimir. Logo, vamos percorrer pelos índices e não precisamos guardar os elementos mas apenas imprimir.
Exemplo B: Devolver os elementos nas posições ímpares:
1.
def
percorre_lista_b(lista):
2.
"""Devolve os elementos nas posições ímpares."""
3.
resultado
=
[]
4.
for
indice
in
range(len(lista)):
5.
if
indice
%
2
=
=
1
:
6.
resultado.append(lista[indice])
7.
return
resultado
Aqui introduzimos uma variável que vai ficar ligada a um acumulador, uma lista.
Exemplo C: Devolver os elementos que são ímpares:
1.
def
percorre_lista_c(lista):
2.
"""Devolve os elementos que são ímpares."""
3.
resultado
=
[]
4.
for
elemento
in
lista:
5.
if
elemento
%
2
=
=
1
:
6.
resultado.append(elemento)
7.
return
resultado
Como queremos os elementos vamos percorrer por conteúdo. Filtramos na mesma os que são ímpares e guardamos os resultados na lista de nome resultado.
Exemplo D: Devolver o elemento maior e sua posição:
01.
def
percorre_lista_d(lista):
02.
"""Devolve o maior elemento e respectivo índice."""
03.
maior
=
lista[
0
]
04.
indice_maior
=
0
05.
for
indice,elemento
in
enumerate(lista):
06.
if
elemento > maior:
07.
maior
=
elemento
08.
indice_maior
=
indice
09.
return
(maior, indice_maior)
Aqui necessitamos das duas coisas: as posições e o conteúdo. Um modo simples de conseguir isso é usar o método enumerate. Não esquecer de colocar a seguir a for o nome das variáveis que vão ficar associadas, em cada etapa do ciclo, ao índice e ao conteúdo!
Sem comentários:
Enviar um comentário