0Pricing
Competitive Programming Academy · Aula

Encontre o Índice, não Apenas o Valor

Acompanhe as posições com enumerate.

Encontre o Índice, não Apenas o Valor é uma aula grátis de Competitive Programming Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Competitive Programming Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Competitive Programming Academy inclui 4 aulas no total.

As posições importam

Muitas vezes, a resposta não é o valor, mas onde ele está. Problemas de competições frequentemente pedem um índice começando em 1 ou em 0, portanto acompanhe as posições.

a = [4, 1, 7, 3]

Encontrar com .index()

a.index(x) retorna a posição da primeira ocorrência. É rápido de escrever, mas percorre os elementos da esquerda para a direita em O(n).

pos = a.index(7)  # 2

Valores ausentes geram erros

Se o valor não estiver presente, .index() gera um ValueError, causando uma falha em tempo de execução. Verifique a associação primeiro quando houver dúvida.

if x in a:
    pos = a.index(x)

Percorrer com enumerate

enumerate fornece o índice e o valor juntos em cada etapa, sendo a forma clara de acompanhar posições durante a varredura.

for i, v in enumerate(a):
    print(i, v)

Começar enumerate em um

Muitos avaliadores esperam posições começando em 1. Passe start=1 para enumerate para que o primeiro índice seja 1, conforme o enunciado.

for i, v in enumerate(a, start=1):
    ...

Índice do máximo

Para descobrir onde está o máximo, percorra os elementos e memorize o melhor índice, pois max(a) sozinho fornece apenas o valor.

best = 0
for i, v in enumerate(a):
    if v > a[best]:
        best = i

Uma forma elegante de obter o índice do máximo

Um truque compacto: associe cada índice ao seu valor e obtenha o máximo pelo valor. O intervalo fornece diretamente a posição.

best = max(range(len(a)), key=lambda i: a[i])

Coletar todos os índices correspondentes

Precisa de todas as posições de um valor? Uma compreensão sobre enumerate reúne todas as ocorrências em uma linha.

idx = [i for i, v in enumerate(a) if v == 7]

Mapear o valor para o índice

Para buscas repetidas, crie uma tabela de dicionário que associe cada valor ao seu índice uma vez, transformando cada busca posterior em uma operação O(1).

where = {v: i for i, v in enumerate(a)}

Duplicatas exigem cuidado

Um dicionário de valor para índice mantém apenas a última ocorrência. Use uma lista por chave, ou enumerate, quando as duplicatas forem importantes.

where = {}
for i, v in enumerate(a):
    where.setdefault(v, []).append(i)

Converter entre bases de índice

Observe a base: se você armazenou índices começando em 0, mas precisa exibi-los começando em 1, adicione um. Misturar bases é uma armadilha silenciosa que produz respostas erradas.

print(pos + 1)  # 0-based to 1-based

Verificação rápida

Você quer posições começando em 1 durante o laço. O que deve escrever?

Recapitulação: acompanhar posições

Agora você consegue encontrar um índice, o índice do máximo e todos os índices correspondentes, além de mapear valores para posições com segurança. enumerate é seu rastreador confiável de posições. 🎯

Perguntas Frequentes

A aula “Encontre o Índice, não Apenas o Valor” é grátis?

Sim — o texto completo de “Encontre o Índice, não Apenas o Valor” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Competitive Programming Academy, atualize para CoddyKit PRO. O curso de Competitive Programming Academy inclui 4 aulas no total.

O que vou aprender em “Encontre o Índice, não Apenas o Valor”?

Acompanhe as posições com enumerate. Você pratica Competitive Programming Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Competitive Programming Academy?

Nenhuma experiência prévia é necessária. Competitive Programming Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Encontre o Índice, não Apenas o Valor”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Competitive Programming Academy?

Sim. Cada aula de Competitive Programming Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Listas, Indexação e Fatiamento para CP
  2. Crie Arrays Rapidamente com Compreensões
  3. Mínimo, Máximo, Soma e Totais Acumulados
  4. Encontre o Índice, não Apenas o Valor
← Voltar para Competitive Programming Academy