Encuentre el índice, no solo el valor
Siga las posiciones con enumerate
Encuentre el índice, no solo el valor es una lección gratuita de Competitive Programming Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Competitive Programming Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Competitive Programming Academy incluye 4 lecciones en total.
Las posiciones importan
A menudo, la respuesta no es el valor, sino dónde se encuentra. En los problemas de programación competitiva se suele pedir un índice basado en 1 o en 0, así que debe controlar las posiciones.
a = [4, 1, 7, 3]Buscar con .index()
a.index(x) devuelve la posición de la primera coincidencia. Es rápido de escribir, pero recorre la lista de izquierda a derecha en O(n).
pos = a.index(7) # 2Los valores ausentes producen errores
Si el valor no está presente, .index() genera un ValueError, es decir, un fallo en tiempo de ejecución. Compruebe primero la pertenencia si no está seguro.
if x in a:
pos = a.index(x)Recorrer con enumerate
enumerate le proporciona el índice y el valor juntos en cada paso: es la forma clara de controlar las posiciones mientras recorre la colección.
for i, v in enumerate(a):
print(i, v)Iniciar enumerate en uno
Muchos jueces requieren posiciones basadas en 1. Pase start=1 a enumerate para que el primer índice sea 1 y coincida con el enunciado.
for i, v in enumerate(a, start=1):
...Índice del máximo
Para encontrar dónde está el máximo, recorra la lista y recuerde el mejor índice, ya que max(a) por sí solo solo proporciona el valor.
best = 0
for i, v in enumerate(a):
if v > a[best]:
best = iUn argmax ingenioso
Un truco compacto: empareje cada índice con su valor y obtenga el máximo por valor. El rango proporciona directamente la posición.
best = max(range(len(a)), key=lambda i: a[i])Recopilar todos los índices coincidentes
¿Necesita todas las posiciones de un valor? Una comprensión sobre enumerate recopila todas las coincidencias en una sola línea.
idx = [i for i, v in enumerate(a) if v == 7]Mapear un valor a su índice
Para realizar búsquedas repetidas, construya una vez un dict que asocie cada valor con su índice y convierta cada búsqueda posterior en una operación O(1).
where = {v: i for i, v in enumerate(a)}Los duplicados requieren cuidado
Un dict de valor a índice solo conserva la última aparición. Use una lista por clave, o enumerate, cuando los duplicados sean importantes.
where = {}
for i, v in enumerate(a):
where.setdefault(v, []).append(i)Convertir entre bases de índices
Preste atención a la base: si almacenó índices basados en 0, pero debe imprimirlos basados en 1, sume uno. Mezclar bases es una causa silenciosa de respuestas incorrectas.
print(pos + 1) # 0-based to 1-basedComprobación rápida
Quiere obtener posiciones basadas en 1 mientras recorre la colección. ¿Qué debe escribir?
Repaso: controlar las posiciones
Ahora puede encontrar un índice concreto, el índice del máximo y todos los índices coincidentes, además de asociar valores con posiciones de forma segura. enumerate es su herramienta fiable para controlar posiciones. 🎯
Aprende Python con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 30
- Lecciones
- 120
Preguntas frecuentes
¿La lección «Encuentre el índice, no solo el valor» es gratis?
Sí — el texto completo de «Encuentre el índice, no solo el valor» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Competitive Programming Academy, actualiza a CoddyKit PRO. El curso de Competitive Programming Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Encuentre el índice, no solo el valor»?
Siga las posiciones con enumerate Practicas Competitive Programming Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Competitive Programming Academy?
No se requiere experiencia previa. Competitive Programming Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Encuentre el índice, no solo el valor»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Competitive Programming Academy?
Sí. Cada lección de Competitive Programming Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Listas, indexación y slicing para CP
- Construya arrays rápidamente con comprehensions
- Min, max, sum y totales acumulados
- Encuentre el índice, no solo el valor