Introdução

Listas são úteis de diferentes maneiras em comparação com outros tipos de dados, devido à sua versatilidade. Neste artigo vamos dar uma vista de olhos a uma das operações mais comuns com listas – encontrar o índice de um elemento.

Vamos dar uma vista de olhos a diferentes cenários de encontrar um elemento, ou seja, encontrar o primeiro, o último, e todas as ocorrências de um elemento. Assim como o que acontece quando o elemento que procuramos não existe.

Usando o índice() Função

O parâmetro element representa naturalmente o elemento que procuramos. O parâmetro start e end são opcionais e representam a gama de índices em que procuramos o element.

O valor por defeito para start0 (procurando desde o início), e o valor por defeito para end é o número de elementos da lista (procurando até ao fim da lista).

A função retorna a primeira posição do element na lista que poderia encontrar, independentemente de quantos elementos iguais existam após a primeira ocorrência.

Finding the First Occurrence of an Element

Using the index() function without setting any values for start e end irá dar-nos a primeira ocorrência do element que procuramos:

my_list = first_occurrence = my_list.index('b')print("First occurrence of 'b' in the list: ", first_occurrence)

Que nos dará o resultado esperado:

First occurrence of 'b' in the list: 1

Encontrar todas as ocorrências de um elemento

Para encontrar todas as ocorrências de um elemento, podemos usar o parâmetro opcional start de modo a procurarmos apenas em determinados segmentos da lista.

Por exemplo, digamos que seria a primeira ocorrência de um elemento no índice 3. A fim de encontrar o próximo, precisaríamos de continuar a nossa busca pela primeira ocorrência desse elemento após index 3. Repetiríamos este processo, mudando onde a nossa pesquisa começa, desde que encontrássemos novas ocorrências do elemento:

A execução deste código dar-nos-ia:

The element was found at: 

Tivemos de usar um try bloco aqui, uma vez que a função index() atira um erro quando não consegue encontrar o especificado element no intervalo dado. Isto pode ser incomum para programadores mais habituados a outras línguas, uma vez que funções como estas normalmente retornam -1null quando o elemento não pode ser encontrado.

No entanto, em Python temos de ter cuidado e usar um bloco try quando usamos esta função.

Outra forma mais limpa de fazer esta mesma coisa seria usando a compreensão da lista e ignorando a função index() ao todo:

que nos daria o mesmo resultado que antes. Esta abordagem tem a vantagem adicional de não utilizar o bloco try.

Finding the Last Occurrence of an Element

Se precisar de encontrar a última ocorrência de um elemento na lista, há duas abordagens que pode utilizar com a função index():

  • Reversa a lista e procura a primeira ocorrência na lista invertida
  • Vá através de todas as ocorrências do elemento, e apenas mantenha o registo da última ocorrência

P>P>Precisando a primeira abordagem, se soubéssemos a primeira ocorrência do element numa lista invertida, poderíamos encontrar a posição da última ocorrência na lista original. Mais especificamente, podemos fazer isto subtraindo reversed_list_index - 1 do comprimento da lista original:

que nos daria o resultado desejado:

6

Como segunda abordagem, podemos ajustar o código que utilizámos para encontrar todas as ocorrências e apenas manter o registo da última ocorrência que encontramos:

Que nos daria o mesmo resultado:

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *