CURSO GRATUITO · MÓDULO 3 · LECCIÓN 3.7

Modificar, ordenar y procesar listas

Combina condiciones, toma decisiones, automatiza repeticiones y procesa listas con operadores lógicos, bit a bit y ordenamiento.

Todas las lecciones son gratuitas. Puedes leer y practicar sin crear una cuenta.

Al terminar podrás

  • Añadir, insertar y eliminar elementos mediante métodos de lista.
  • Diferenciar sort() de sorted() y explicar cuándo usar cada uno.
  • Comprender comparaciones e intercambios en bubble sort.

Vamos paso a paso

Las listas son mutables. append() añade al final, insert(posicion, valor) inserta en una posición, remove(valor) elimina la primera coincidencia y pop() elimina por índice y devuelve el elemento. Antes de eliminar o consultar, verifica que el elemento o índice exista.

sort() ordena la lista original y no devuelve una lista nueva; sorted(lista) crea otra secuencia ordenada sin modificar la fuente. Ambos pueden recibir reverse=True para invertir el orden. Elige sort() cuando quieras modificar la colección y sorted() cuando necesites conservarla.

Bubble sort es un algoritmo didáctico que compara elementos vecinos y los intercambia cuando están desordenados. En cada pasada completa, el mayor valor de la parte pendiente termina al final de esa parte. No es eficiente para colecciones grandes, pero ayuda a practicar índices y comparaciones.

Primero observa una sola pasada con [5, 2, 4]. Se compara 5 con 2; como 5 es mayor, se intercambian y la lista queda [2, 5, 4]. Después se compara 5 con 4 y queda [2, 4, 5]. El valor mayor ya llegó al final.

En el ejercicio, el bucle exterior repite las pasadas y el interior compara cada valor con el siguiente. range(len(numeros) - 1 - pasada) reduce el recorrido porque la parte final ya quedó ordenada. Usa indice + 1 solo mientras exista un vecino a la derecha.

EJEMPLO EN PYTHON

colores = ["azul", "rojo", "verde"]
colores.append("negro")
colores.insert(1, "blanco")
retirado = colores.pop()
colores.sort()
print(colores)
print(retirado)

# Una pasada de bubble sort
numeros = [5, 2, 4]
for indice in range(len(numeros) - 1):
    if numeros[indice] > numeros[indice + 1]:
        temporal = numeros[indice]
        numeros[indice] = numeros[indice + 1]
        numeros[indice + 1] = temporal
print(numeros)

# Bubble sort completo
numeros_completos = [5, 2, 4, 1]
for pasada in range(len(numeros_completos) - 1):
    for indice in range(len(numeros_completos) - 1 - pasada):
        if numeros_completos[indice] > numeros_completos[indice + 1]:
            temporal = numeros_completos[indice]
            numeros_completos[indice] = numeros_completos[indice + 1]
            numeros_completos[indice + 1] = temporal
    print(f"Pasada {pasada + 1}: {numeros_completos}")
print("Resultado:", numeros_completos)

RESULTADO

['azul', 'blanco', 'rojo', 'verde']
negro
[2, 4, 5]
Pasada 1: [2, 4, 1, 5]
Pasada 2: [2, 1, 4, 5]
Pasada 3: [1, 2, 4, 5]
Resultado: [1, 2, 4, 5]

¿Qué está pasando?

  1. append() añade negro al final de la lista.
  2. insert(1, ...) coloca blanco en la segunda posición.
  3. pop() retira y devuelve el último valor; sort() ordena los restantes.
  4. En la pasada guiada se compara 5 con 2; el intercambio deja [2, 5, 4].
  5. Después se compara 5 con 4 y queda [2, 4, 5]; el bucle exterior repetirá el recorrido en el ejercicio completo.
  6. El bucle exterior realiza como máximo n - 1 pasadas.
  7. El bucle interior se acorta con - pasada porque el mayor de la parte pendiente ya queda colocado al final en cada recorrido.
  8. El ejemplo completo ordena la lista usando dos bucles y un intercambio temporal; no necesita sort() ni sorted().

Errores que conviene evitar

  • Esperar que sorted() modifique la lista original.
  • Confundir pop(), que devuelve un elemento, con remove(), que busca un valor.
  • Intercambiar dos valores sin guardar temporalmente uno de ellos.
  • Intentar comparar con indice + 1 cuando ya no existe un vecino a la derecha.
  • Repetir comparaciones sobre la parte que ya quedó ordenada al final.
  • Usar sort() o sorted() en el ejercicio cuando se pide implementar Bubble Sort manualmente.

AHORA TE TOCA A TI

Ordenar con bubble sort

Completa el ordenamiento por burbuja para ordenar [5, 2, 4, 1] de menor a mayor y muestra la lista final. No uses sort() ni sorted().

PISTAS

  • El bucle interior compara numeros[indice] con numeros[indice + 1].
  • Intercambia solo cuando el valor de la izquierda sea mayor que el de la derecha.
  • Guarda el primer valor en temporal antes de sobrescribirlo.
  • La parte final ya ordenada se acorta en cada pasada mediante - pasada.

Tu espacio de trabajo

Cómo usar este laboratorio

Python · nivel principiante
  1. 01EscribeModifica el archivo main.py en el editor.
  2. 02EjecutaCorre tu programa o comprueba el ejercicio.
  3. 03ObservaRevisa la consola y, cuando corresponda, el gráfico.
Instrucciones de esta actividad

Completa el ordenamiento por burbuja para ordenar [5, 2, 4, 1] de menor a mayor y muestra la lista final. No uses sort() ni sorted().

Entorno de desarrollo

Laboratorio de Python

Al ejecutar se inicia Python
main.pyPYTHON
Archivo de práctica
Loading...

Teclas útiles en el móvil

Python en el navegador · entorno aislado7 líneas