Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Chamar todos as repetições dentro da lista

Boa tarde!

gostaria de saber como chamar todas as repetições de uma lista EX.:

valores = [1,1,1,3]

valores.index(1)

Já que o index só retorna a primeira ocorrência, teria alguma função que chama todas as ocorrências?

2 respostas
solução!

Oi Vinícius, tudo bem?

Irei mostrar duas abordagens, a primeira, de um jeito mais "bruto". Que seria utilizando um for para encontrar todas as ocorrências e possuindo uma variável auxiliar nomeada de posicao :

valores = [1,1,1,3]
posicao = 0
for valor in valores:

    if valor == 1:
        print(posicao)

    posicao += 1

Observe que a variável posição começa por zero, uma vez que um vetor começa do índice zero e esta variável é incrementada dentro do laço, para quando encontramos o valor correspondente, printarmos a posição.

A segunda maneira, é utilizando a função enumerate, que nos retorna uma lista de objetos enumerados. Por exemplo:

x = ('apple', 'banana', 'cherry')
y = enumerate(x)

print(list(y))

Resultado: [(0, 'apple'), (1, 'banana'), (2, 'cherry')]

Com isso, podemos fazer o seguinte para o seu caso:

valores = [1,1,1,3]
for posicao, valor in enumerate(valores):
    if valor == 1:
        print(posicao)

Deixo aqui uma referência sobre a função enumerate.

Pegou a ideia? Qualquer dúvida é só falar.

Abraços e bons estudos!

Fui procurar conteúdos de listas e encontrei um exercício que usava este método agr... Muito interessante.

Obrigado Nádia!