1
resposta

Python: lista sequência

Boa tarde a todos.

Problema:

  • tenho uma lista de referência com valores repetidos ex:. [1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3]
  • estou tentando criar uma outra lista que crie uma sequência crescente a partir do primeiro conjunto de dados, reiniciando a contagem quando aparecer outro valor ex.: [1, 2, 1, 2, 3, 1, 2, 3, 4, 5]

lista de referência = [1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3]

lista de contagem = [1, 2, 1, 2, 3, 1, 2, 3, 4, 5, 6]

Explicando melhor: na lista de referência há duas vezes o valor 1 [posição 0 e 1], na lista de contagem quero que apareça, como no exemplo, os valores 1 e 2 nas mesmas posições; quando mudar o número da lista de referência a contagem deve recomeçar.

Estou usando o abaixo:

localizador = 0
contador = 0
for i in lista_teste:
    if i != lista_teste[localizador - 1]:
        print(1)
    else:
        x = 2 + contador
        print( x, 'arrumar') # arrumar é onde não consigo por a sequência
        contador += 1
    localizador += 1

Quem puder ajudar agradeço.

1 resposta

Oi Jefferson!

O primeiro problema no seu código está logo na primeira verificação (if i != lista_teste[localizador - 1]). Como você não valida se localizador é maior ou igual a um, logo na primeira iteração, o interpretador do Python tenta acessar a posição -1 de lista_teste.

Além disso, recomendo a você inicializar uma lista vazia antes de começar o loop para iteração a iteração, incluir a contagem de cada número que se repete. Dessa forma, o código fica mais organizado e fica mais fácil de você obter a saída que espera. :)

Espero que tenha ajudado.

Abraço