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:
def percorre_lista_a(lista):
""" Imprimir os elementos nas posições ímpares."""
for indice in range(len(lista)):
if indice % 2 == 1:
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:
def percorre_lista_b(lista):
"""Devolve os elementos nas posições ímpares."""
resultado = []
for indice in range(len(lista)):
if indice % 2 == 1:
resultado.append(lista[indice])
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:
def percorre_lista_c(lista):
"""Devolve os elementos que são ímpares."""
resultado = []
for elemento in lista:
if elemento % 2 == 1:
resultado.append(elemento)
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:
def percorre_lista_d(lista):
"""Devolve o maior elemento e respectivo índice."""
maior = lista[0]
indice_maior = 0
for indice,elemento in enumerate(lista):
if elemento > maior:
maior = elemento
indice_maior = indice
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