Operaciones Avanzadas con Listas: Ordenación, Consulta y Anidamiento
En este paso final, explorará operaciones de lista más avanzadas, incluyendo el ordenamiento (sorting), la consulta de información y el trabajo con listas anidadas (nested lists).
Comencemos con el ordenamiento. El método sort() modifica la lista en su lugar (in-place). Puede ordenar en orden ascendente o descendente.
Abra el archivo list_operations.py en el WebIDE. Agregue el siguiente código para demostrar el ordenamiento:
## --- Sorting Lists ---
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
print("--- Sorting Lists ---")
print("Original numbers list:", numbers)
## Sort the list in-place (ascending)
numbers.sort()
print("After sort():", numbers)
## Sort the list in descending order
numbers.sort(reverse=True)
print("After sort(reverse=True):", numbers)
## The reverse() method simply reverses the order, it does not sort
letters = ['a', 'b', 'c', 'd']
print("\nOriginal letters list:", letters)
letters.reverse()
print("After reverse():", letters)
Guarde el archivo y ejecútelo desde la terminal:
python ~/project/list_operations.py
La salida muestra las listas ordenadas e invertidas:
--- Sorting Lists ---
Original numbers list: [3, 1, 4, 1, 5, 9, 2, 6]
After sort(): [1, 1, 2, 3, 4, 5, 6, 9]
After sort(reverse=True): [9, 6, 5, 4, 3, 2, 1, 1]
Original letters list: ['a', 'b', 'c', 'd']
After reverse(): ['d', 'c', 'b', 'a']
A continuación, consultaremos una lista para encontrar información.
count(): Devuelve el número de veces que aparece un valor.
index(): Devuelve el índice de la primera aparición de un valor.
Agregue el siguiente código a list_operations.py:
## --- Querying Lists ---
fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']
print("\n--- Querying Lists ---")
print("Fruits list:", fruits)
## Count the occurrences of an element
apple_count = fruits.count('apple')
print("Count of 'apple':", apple_count)
## Find the index of the first occurrence of an element
banana_index = fruits.index('banana')
print("Index of first 'banana':", banana_index)
Finalmente, veamos las listas anidadas. Una lista anidada es una lista que contiene otras listas como sus elementos. Esto es útil para crear estructuras 2D como una matriz o una cuadrícula.
Agregue este bloque de código final a list_operations.py:
## --- Nested Lists ---
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print("\n--- Nested Lists ---")
print("Matrix:", matrix)
## Access an entire inner list (a row)
first_row = matrix[0]
print("First row:", first_row)
## Access a specific element in the nested list
## To get the element '6', we access row 1, then column 2
element = matrix[1][2]
print("Element at matrix[1][2]:", element)
Guarde el archivo y ejecute el script por última vez:
python ~/project/list_operations.py
La salida completa demostrará el ordenamiento, la consulta y el acceso a listas anidadas:
--- Sorting Lists ---
Original numbers list: [3, 1, 4, 1, 5, 9, 2, 6]
After sort(): [1, 1, 2, 3, 4, 5, 6, 9]
After sort(reverse=True): [9, 6, 5, 4, 3, 2, 1, 1]
Original letters list: ['a', 'b', 'c', 'd']
After reverse(): ['d', 'c', 'b', 'a']
--- Querying Lists ---
Fruits list: ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']
Count of 'apple': 2
Index of first 'banana': 3
--- Nested Lists ---
Matrix: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
First row: [1, 2, 3]
Element at matrix[1][2]: 6
Ahora ha dominado varias técnicas avanzadas para trabajar con listas de Python.