23- 馃搳 Arrays en Python: Gu铆a B谩sica




Arrays

馃敘 Arrays en Python: Estructuras de Datos Ordenadas

Cuando hablamos de "arrays" en el contexto de muchos lenguajes de programaci贸n, nos referimos a estructuras de datos que almacenan una colecci贸n de elementos del mismo tipo. Sin embargo, en Python, la estructura de datos que m谩s se asemeja a un array tradicional es la lista. Las listas en Python son m谩s flexibles que los arrays t铆picos de otros lenguajes, ya que pueden contener elementos de diferentes tipos.

Aunque Python no tiene un tipo de dato "array" incorporado directamente con la misma rigidez que en C++ o Java, el m贸dulo array de la biblioteca est谩ndar proporciona una forma de crear arrays que almacenan elementos de un tipo num茅rico espec铆fico de manera m谩s eficiente en t茅rminos de memoria para ciertos casos.

En esta lecci贸n, principalmente nos centraremos en c贸mo usar las listas de Python como si fueran arrays, ya que son la estructura de datos m谩s com煤n y vers谩til para almacenar secuencias de elementos.

¿Por Qu茅 Usar Listas como Arrays?

  • Ordenadas: Los elementos en una lista tienen un orden espec铆fico, y ese orden se mantiene.
  • Indexadas: Puedes acceder a cada elemento de la lista utilizando un 铆ndice (posici贸n), comenzando desde 0.
  • Mutables: Puedes cambiar, a帽adir o eliminar elementos de una lista despu茅s de su creaci贸n.
  • Permiten duplicados: Las listas pueden contener elementos con el mismo valor.
  • Flexibles en tipo (por defecto): Aunque en el m贸dulo array los elementos deben ser del mismo tipo, las listas de Python pueden contener elementos de diferentes tipos (aunque a menudo se usan para almacenar elementos del mismo tipo por consistencia).

Ejemplo de Creaci贸n de una Lista (Us谩ndola como Array):

      
# Una lista de n煤meros enteros
numeros = [10, 20, 30, 40, 50]
print(numeros)

# Una lista de cadenas
frutas = ["manzana", "banana", "cereza"]
print(frutas)

# Una lista mixta (aunque no es el uso t铆pico de un array)
datos_mixtos = [1, "hola", 3.14, True]
print(datos_mixtos)
      
     

A lo largo de esta lecci贸n, exploraremos c贸mo acceder a los elementos de estas listas, c贸mo modificarlas, c贸mo recorrerlas y algunas de las operaciones m谩s comunes que se realizan con ellas, trat谩ndolas en muchos aspectos como si fueran los arrays que encontrar铆as en otros lenguajes.

What is an Array?

馃 ¿Qu茅 es un Array (en el Contexto de Python)?

Como mencionamos en el tema anterior, en Python, la estructura de datos que utilizamos de manera similar a un array tradicional es la lista. Si bien el m贸dulo array existe para casos espec铆ficos de almacenamiento num茅rico eficiente, la flexibilidad y el uso generalizado de las listas hacen que sean la "navaja suiza" para secuencias de datos ordenadas.

Caracter铆sticas Fundamentales de las Listas (como Arrays):

  • Colecci贸n de Elementos: Una lista es un contenedor que puede almacenar m煤ltiples elementos bajo un solo nombre de variable.
  • Ordenada: Los elementos dentro de una lista mantienen un orden espec铆fico. El orden en que se a帽aden los elementos es el orden en el que se almacenan y se acceden a ellos.
  • Indexada: Cada elemento en una lista tiene una posici贸n o 铆ndice. Los 铆ndices comienzan desde 0 para el primer elemento, 1 para el segundo, y as铆 sucesivamente. Esto permite acceder a elementos espec铆ficos utilizando su 铆ndice.
  • Mutable: Las listas son mutables, lo que significa que puedes cambiar, a帽adir o eliminar elementos de una lista despu茅s de que ha sido creada. Esta es una diferencia clave con otras estructuras de datos secuenciales en Python, como las tuplas, que son inmutables.
  • Permiten Elementos Duplicados: A diferencia de los conjuntos (sets), las listas pueden contener m煤ltiples ocurrencias del mismo valor.

La Diferencia con los Arrays del M贸dulo array:

Es importante mencionar brevemente el m贸dulo array de Python:

  • Homog茅neo en Tipo: Los arrays creados con el m贸dulo array est谩n dise帽ados para contener elementos del mismo tipo de dato num茅rico (por ejemplo, todos enteros, todos n煤meros de punto flotante). Esto los hace m谩s eficientes en t茅rminos de memoria para grandes secuencias num茅ricas.
  • Menos Funcionalidades Incorporadas: Las listas tienen muchas m谩s funcionalidades incorporadas (m茅todos como append(), insert(), pop(), etc.) en comparaci贸n con los objetos de tipo array del m贸dulo array.

Debido a la versatilidad de las listas y su amplia utilizaci贸n en la programaci贸n Python, nos centraremos en ellas como nuestra principal forma de trabajar con colecciones ordenadas de elementos, an谩logas a los arrays en otros lenguajes.

Ejemplo para Ilustrar las Caracter铆sticas:

      
# Creaci贸n de una lista (array)
mi_lista = ["Python", 3.7, True, "es", 100]

# Ordenada: el orden de los elementos se mantiene
print(mi_lista)
# Output: ['Python', 3.7, True, 'es', 100]

# Indexada: podemos acceder a elementos por su posici贸n
primer_elemento = mi_lista[0]
print(f"El primer elemento es: {primer_elemento}")
# Output: El primer elemento es: Python

# Mutable: podemos cambiar un elemento
mi_lista[1] = 3.8
print(f"Lista despu茅s del cambio: {mi_lista}")
# Output: Lista despu茅s del cambio: ['Python', 3.8, True, 'es', 100]

# Permite duplicados:
otra_lista = [1, 2, 2, 3, 1]
print(otra_lista)
# Output: [1, 2, 2, 3, 1]
      
     

En resumen, cuando hablemos de arrays en las siguientes secciones, estaremos refiri茅ndonos al uso de las listas de Python para almacenar y manipular colecciones ordenadas de elementos.

Access the Elements of an Array

馃攽 Acceder a los Elementos de un Array (Lista)

Como las listas en Python son estructuras de datos indexadas, podemos acceder a cada uno de sus elementos utilizando su 铆ndice. Recuerda que la indexaci贸n en Python (y en muchos otros lenguajes de programaci贸n) comienza desde 0.

Acceso por 脥ndice Positivo:

Para acceder a un elemento espec铆fico, simplemente colocamos el 铆ndice del elemento entre corchetes [] despu茅s del nombre de la lista.

      
frutas = ["manzana", "banana", "cereza"]

primer_elemento = frutas[0]  # Accede al elemento en el 铆ndice 0 (la "manzana")
print(f"El primer elemento es: {primer_elemento}")

segundo_elemento = frutas[1] # Accede al elemento en el 铆ndice 1 (la "banana")
print(f"El segundo elemento es: {segundo_elemento}")

tercer_elemento = frutas[2]  # Accede al elemento en el 铆ndice 2 (la "cereza")
print(f"El tercer elemento es: {tercer_elemento}")
      
     

Acceso por 脥ndice Negativo:

Python tambi茅n permite acceder a los elementos de una lista utilizando 铆ndices negativos. Esto es 煤til para acceder a los elementos desde el final de la lista:

  • -1 se refiere al 煤ltimo elemento.
  • -2 se refiere al pen煤ltimo elemento.
  • Y as铆 sucesivamente...
      
frutas = ["manzana", "banana", "cereza"]

ultimo_elemento = frutas[-1]  # Accede al 煤ltimo elemento ("cereza")
print(f"El 煤ltimo elemento es: {ultimo_elemento}")

penultimo_elemento = frutas[-2] # Accede al pen煤ltimo elemento ("banana")
print(f"El pen煤ltimo elemento es: {penultimo_elemento}")

antepenultimo_elemento = frutas[-3] # Accede al antepen煤ltimo elemento ("manzana")
print(f"El antepen煤ltimo elemento es: {antepenultimo_elemento}")
      
     

IndexError: Cuando el 脥ndice Est谩 Fuera de Rango:

Si intentas acceder a un 铆ndice que no existe en la lista (es decir, un 铆ndice que es menor que el negativo de la longitud de la lista o mayor o igual que la longitud de la lista), Python generar谩 un error llamado IndexError.

      
frutas = ["manzana", "banana", "cereza"]

# Intentar acceder a un 铆ndice fuera de rango
# error = frutas[3]  # Esto generar谩 un IndexError
# error_negativo = frutas[-4] # Esto tambi茅n generar谩 un IndexError
      
     

Es importante asegurarse de que el 铆ndice al que intentas acceder est茅 dentro de los l铆mites v谩lidos de la lista para evitar este error.

Slicing (Rebanado) de Listas:

Adem谩s de acceder a elementos individuales, tambi茅n puedes acceder a una porci贸n de una lista utilizando la t茅cnica de "slicing". Esto se hace especificando un rango de 铆ndices:


lista[inicio:fin:paso]
    
  • inicio: El 铆ndice donde comienza el slice (inclusive). Si se omite, comienza desde el principio.
  • fin: El 铆ndice donde termina el slice (exclusivo). Si se omite, termina al final.
  • paso: La diferencia entre los 铆ndices de los elementos incluidos en el slice. Si se omite, el valor por defecto es 1.
      
numeros = [10, 20, 30, 40, 50, 60, 70, 80]

sublista1 = numeros[1:4]   # Elementos desde el 铆ndice 1 hasta el 3 (20, 30, 40)
print(f"Sublista 1: {sublista1}")

sublista2 = numeros[:3]    # Elementos desde el inicio hasta el 铆ndice 2 (10, 20, 30)
print(f"Sublista 2: {sublista2}")

sublista3 = numeros[4:]    # Elementos desde el 铆ndice 4 hasta el final (50, 60, 70, 80)
print(f"Sublista 3: {sublista3}")

sublista4 = numeros[::2]   # Cada segundo elemento (10, 30, 50, 70)
print(f"Sublista 4: {sublista4}")

sublista5 = numeros[::-1]  # La lista en orden inverso (80, 70, 60, 50, 40, 30, 20, 10)
print(f"Sublista 5: {sublista5}")
      
     

Acceder a los elementos por 铆ndice y utilizar el slicing son operaciones fundamentales para trabajar con listas en Python.

The Length of an Array

馃搹 La Longitud de un Array (Lista)

A menudo, al trabajar con arrays (listas), necesitamos saber cu谩ntos elementos contiene. En Python, podemos obtener la longitud de una lista utilizando la funci贸n incorporada len().

Usando la Funci贸n len():

La funci贸n len() toma una lista como argumento y devuelve un entero que representa el n煤mero de elementos en esa lista.

      
frutas = ["manzana", "banana", "cereza"]
longitud_frutas = len(frutas)
print(f"La longitud de la lista de frutas es: {longitud_frutas}")
# Output: La longitud de la lista de frutas es: 3

numeros = [10, 20, 30, 40, 50, 60]
longitud_numeros = len(numeros)
print(f"La longitud de la lista de n煤meros es: {longitud_numeros}")
# Output: La longitud de la lista de n煤meros es: 6

lista_vacia = []
longitud_vacia = len(lista_vacia)
print(f"La longitud de la lista vac铆a es: {longitud_vacia}")
# Output: La longitud de la lista vac铆a es: 0
      
     

Importancia de Conocer la Longitud:

Conocer la longitud de una lista es fundamental por varias razones:

  • Iteraci贸n: A menudo se utiliza la longitud para controlar bucles que recorren los elementos de la lista.
  • Validaci贸n de 铆ndices: Antes de acceder a un elemento por su 铆ndice, es 煤til verificar que el 铆ndice est茅 dentro del rango v谩lido (de 0 a len(lista) - 1) para evitar errores IndexError.
  • C谩lculos basados en el tama帽o: En algunos algoritmos, la longitud de la lista es necesaria para realizar c谩lculos o tomar decisiones.

Ejemplo de Uso con Iteraci贸n:

      
colores = ["rojo", "verde", "azul", "amarillo"]
longitud_colores = len(colores)

for i in range(longitud_colores):
    print(f"El color en el 铆ndice {i} es: {colores[i]}")
      
     

Consideraciones:

  • La funci贸n len() opera en tiempo constante \(O(1)\) para las listas en Python. Esto significa que el tiempo que tarda en ejecutarse no depende del tama帽o de la lista.
  • len() es una funci贸n general de Python y se puede usar con otros tipos de colecciones como cadenas, tuplas, diccionarios y conjuntos para obtener su n煤mero de elementos o longitud.

En resumen, la funci贸n len() es una herramienta esencial para trabajar con listas (y otras colecciones) en Python, permiti茅ndonos conocer su tama帽o de manera eficiente.

Looping Array Elements

馃攧 Recorrer los Elementos de un Array (Lista)

Una de las tareas m谩s comunes al trabajar con arrays (listas) es iterar a trav茅s de sus elementos para realizar alguna operaci贸n con cada uno de ellos. Python ofrece varias formas de lograr esto utilizando bucles.

Bucle for Directo (Iterando sobre los elementos):

La forma m谩s sencilla y Pythonica de recorrer los elementos de una lista es utilizando un bucle for directamente sobre la lista. En cada iteraci贸n, la variable del bucle tomar谩 el valor del siguiente elemento de la lista.

      
frutas = ["manzana", "banana", "cereza"]

for fruta in frutas:
    print(f"Me gusta la {fruta}")
      
     

Bucle for con 脥ndices (Usando range() y len()):

Si necesitas acceder al 铆ndice de cada elemento mientras lo recorres (por ejemplo, para modificar el elemento en su posici贸n original o para comparar elementos con sus vecinos), puedes usar un bucle for combinado con la funci贸n range() y la longitud de la lista obtenida con len().

      
colores = ["rojo", "verde", "azul"]
longitud_colores = len(colores)

for i in range(longitud_colores):
    print(f"El color en el 铆ndice {i} es: {colores[i]}")
      
     

Bucle while:

Aunque menos com煤n para la iteraci贸n simple sobre listas, tambi茅n puedes usar un bucle while para recorrer los elementos utilizando un 铆ndice que se incrementa en cada iteraci贸n. Sin embargo, debes tener cuidado de no exceder los l铆mites de la lista para evitar un IndexError.

      
animales = ["gato", "perro", "p谩jaro"]
indice = 0
longitud_animales = len(animales)

while indice < longitud_animales:
    print(f"El animal en el 铆ndice {indice} es: {animales[indice]}")
    indice += 1
      
     

List Comprehension (Comprensi贸n de Listas):

Aunque no es un bucle en s铆 mismo, la comprensi贸n de listas proporciona una forma concisa de crear nuevas listas basadas en los elementos de una lista existente (o cualquier otro iterable). Tambi茅n se puede usar para realizar una operaci贸n en cada elemento.

      
numeros = [1, 2, 3, 4, 5]
cuadrados = [numero**2 for numero in numeros]
print(f"Los cuadrados son: {cuadrados}")

# Tambi茅n se puede usar para realizar una acci贸n (aunque no es su uso principal)
[print(f"N煤mero: {n}") for n in numeros]
      
     

enumerate() para obtener 铆ndice y valor:

La funci贸n enumerate() es muy 煤til cuando necesitas tanto el 铆ndice como el valor de cada elemento mientras iteras sobre una lista. Devuelve una secuencia de tuplas, donde cada tupla contiene el 铆ndice y el elemento correspondiente.

      
dias_semana = ["lunes", "martes", "mi茅rcoles"]

for indice, dia in enumerate(dias_semana):
    print(f"El d铆a {dia} est谩 en el 铆ndice {indice}")
      
     

Estas son las principales formas de recorrer los elementos de una lista (array) en Python. La elecci贸n del m茅todo depender谩 de si solo necesitas el valor del elemento, tambi茅n necesitas su 铆ndice, o si est谩s creando una nueva lista basada en la original.

Adding Array Elements

➕ A帽adir Elementos a un Array (Lista)

Las listas en Python son mutables, lo que significa que podemos a帽adir nuevos elementos a ellas despu茅s de su creaci贸n. Python proporciona varios m茅todos para agregar elementos a una lista, dependiendo de d贸nde queramos insertarlos.

append(): A帽adir al Final

El m茅todo append() se utiliza para a帽adir un elemento al final de la lista. Es la forma m谩s com煤n y eficiente de agregar un solo elemento.

      
frutas = ["manzana", "banana", "cereza"]
frutas.append("naranja")
print(frutas)
# Output: ['manzana', 'banana', 'cereza', 'naranja']

numeros = [1, 2, 3]
numeros.append(4)
print(numeros)
# Output: [1, 2, 3, 4]
      
     

insert(): A帽adir en una Posici贸n Espec铆fica

El m茅todo insert() se utiliza para a帽adir un elemento en una posici贸n espec铆fica de la lista. Requiere dos argumentos: el 铆ndice donde se insertar谩 el elemento y el elemento a insertar. Los elementos existentes a partir de esa posici贸n se desplazan hacia la derecha.

      
colores = ["rojo", "amarillo"]
colores.insert(1, "verde")  # Inserta "verde" en el 铆ndice 1
print(colores)
# Output: ['rojo', 'verde', 'amarillo']

animales = ["gato", "p谩jaro"]
animales.insert(0, "perro") # Inserta "perro" al principio (铆ndice 0)
print(animales)
# Output: ['perro', 'gato', 'p谩jaro']
      
     

extend(): A帽adir Elementos de Otra Lista (o Iterable)

El m茅todo extend() se utiliza para a帽adir todos los elementos de otra lista (o cualquier iterable como una tupla o una cadena) al final de la lista actual. Es 煤til cuando quieres combinar dos listas.

      
lista1 = [1, 2, 3]
lista2 = [4, 5, 6]
lista1.extend(lista2)
print(lista1)
# Output: [1, 2, 3, 4, 5, 6]

nombres = ["Ana", "Beto"]
nuevos_nombres = ("Carlos", "Diana")
nombres.extend(nuevos_nombres)
print(nombres)
# Output: ['Ana', 'Beto', 'Carlos', 'Diana']
      
     

Concatenaci贸n con el Operador +:

Tambi茅n puedes usar el operador + para concatenar dos listas, lo que crea una nueva lista que contiene todos los elementos de ambas listas. Sin embargo, a diferencia de append() y extend(), la concatenaci贸n crea una nueva lista en lugar de modificar la lista original.

      
letras1 = ["a", "b", "c"]
letras2 = ["d", "e"]
letras_combinadas = letras1 + letras2
print(letras_combinadas)
# Output: ['a', 'b', 'c', 'd', 'e']

print(letras1) # La lista original no se modifica
# Output: ['a', 'b', 'c']
      
     

Consideraciones de Rendimiento:

  • append() es generalmente la operaci贸n m谩s eficiente para a帽adir un solo elemento al final.
  • insert() puede ser menos eficiente si se insertan elementos cerca del principio de listas grandes, ya que requiere desplazar todos los elementos siguientes.
  • extend() es eficiente para a帽adir m煤ltiples elementos al final.
  • La concatenaci贸n con + crea una nueva lista, lo que puede ser menos eficiente en t茅rminos de memoria si se realiza repetidamente con listas grandes.

La elecci贸n del m茅todo para a帽adir elementos depender谩 de tus necesidades espec铆ficas: si quieres a帽adir al final, en una posici贸n espec铆fica o combinar listas.

Removing Array Elements

➖ Eliminar Elementos de un Array (Lista)

Dado que las listas son mutables, podemos eliminar elementos de ellas utilizando varios m茅todos. La elecci贸n del m茅todo depender谩 de si conocemos el 铆ndice del elemento que queremos eliminar o su valor.

pop(): Eliminar por 脥ndice (y Devolver el Elemento)

El m茅todo pop() elimina el elemento en un 铆ndice espec铆fico de la lista y tambi茅n devuelve el elemento que fue eliminado. Si no se proporciona ning煤n 铆ndice, pop() elimina y devuelve el 煤ltimo elemento de la lista.

      
frutas = ["manzana", "banana", "cereza"]
elemento_eliminado = frutas.pop(1) # Elimina el elemento en el 铆ndice 1 ("banana")
print(frutas)
# Output: ['manzana', 'cereza']
print(f"Elemento eliminado: {elemento_eliminado}")
# Output: Elemento eliminado: banana

numeros = [10, 20, 30]
ultimo_eliminado = numeros.pop() # Elimina el 煤ltimo elemento (30)
print(numeros)
# Output: [10, 20]
print(f"脷ltimo elemento eliminado: {ultimo_eliminado}")
# Output: 脷ltimo elemento eliminado: 30
      
     

del: Eliminar por 脥ndice o Slice

La palabra clave del es una sentencia en Python que se puede usar para eliminar un elemento en un 铆ndice espec铆fico o para eliminar una porci贸n de la lista (un slice).

      
colores = ["rojo", "verde", "azul", "amarillo"]
del colores[0] # Elimina el elemento en el 铆ndice 0 ("rojo")
print(colores)
# Output: ['verde', 'azul', 'amarillo']

numeros = [1, 2, 3, 4, 5]
del numeros[1:3] # Elimina los elementos desde el 铆ndice 1 hasta el 2 (2 y 3)
print(numeros)
# Output: [1, 4, 5]
      
     

remove(): Eliminar por Valor

El m茅todo remove() elimina la primera aparici贸n de un elemento con un valor espec铆fico de la lista. Si el valor no se encuentra en la lista, se genera un error ValueError.

      
animales = ["gato", "perro", "gato", "p谩jaro"]
animales.remove("gato") # Elimina la primera aparici贸n de "gato"
print(animales)
# Output: ['perro', 'gato', 'p谩jaro']

# Intentar eliminar un valor que no existe generar谩 un error
# animales.remove("pez") # Esto generar谩 un ValueError
      
     

clear(): Eliminar Todos los Elementos

El m茅todo clear() elimina todos los elementos de la lista, dej谩ndola vac铆a.

      
mi_lista = [1, 2, 3, 4, 5]
mi_lista.clear()
print(mi_lista)
# Output: []
      
     

Consideraciones:

  • pop(indice) es 煤til cuando necesitas el valor del elemento eliminado. Si se usa sin 铆ndice, es eficiente para eliminar el 煤ltimo elemento.
  • del lista[indice] es una forma directa de eliminar un elemento por su 铆ndice sin devolver su valor. del lista[slice] es potente para eliminar m煤ltiples elementos.
  • remove(valor) es conveniente cuando conoces el valor del elemento que quieres eliminar, pero debes tener cuidado si el valor no existe en la lista.
  • clear() es la forma m谩s r谩pida de vaciar una lista completa.

La elecci贸n del m茅todo para eliminar elementos depender谩 de si conoces el 铆ndice o el valor del elemento (o elementos) que deseas quitar, y si necesitas o no el valor del elemento eliminado.

Array Methods

馃洜️ M茅todos de Array (Lista) Adicionales

Adem谩s de los m茅todos que ya hemos visto para a帽adir y eliminar elementos, las listas en Python ofrecen una variedad de m茅todos incorporados que facilitan la manipulaci贸n y el an谩lisis de los datos que contienen.

index(): Encontrar el 脥ndice de un Elemento

El m茅todo index() devuelve el 铆ndice de la primera aparici贸n de un valor especificado en la lista. Si el valor no se encuentra, genera un error ValueError.

      
frutas = ["manzana", "banana", "cereza", "banana"]
indice_banana = frutas.index("banana")
print(f"El 铆ndice de la primera 'banana' es: {indice_banana}")
# Output: El 铆ndice de la primera 'banana' es: 1

# Puedes especificar un inicio y un final para la b煤squeda
indice_banana_desde_dos = frutas.index("banana", 2)
print(f"El 铆ndice de 'banana' buscando desde el 铆ndice 2 es: {indice_banana_desde_dos}")
# Output: El 铆ndice de 'banana' buscando desde el 铆ndice 2 es: 3

# Intentar encontrar un valor que no existe generar谩 un error
# indice_uva = frutas.index("uva") # Esto generar谩 un ValueError
      
     

count(): Contar Ocurrencias de un Elemento

El m茅todo count() devuelve el n煤mero de veces que un valor espec铆fico aparece en la lista.

      
numeros = [1, 2, 2, 3, 2, 4, 2]
conteo_dos = numeros.count(2)
print(f"El n煤mero 2 aparece {conteo_dos} veces.")
# Output: El n煤mero 2 aparece 4 veces.

conteo_uno = numeros.count(1)
print(f"El n煤mero 1 aparece {conteo_uno} vez.")
# Output: El n煤mero 1 aparece 1 vez.
      
     

sort(): Ordenar la Lista (In-place)

El m茅todo sort() ordena los elementos de la lista en su lugar (es decir, modifica la lista original). Por defecto, ordena los elementos en orden ascendente. Puedes usar el argumento reverse=True para ordenar en orden descendente.

      
letras = ["c", "a", "b"]
letras.sort()
print(f"Lista ordenada ascendentemente: {letras}")
# Output: Lista ordenada ascendentemente: ['a', 'b', 'c']

numeros = [3, 1, 4, 1, 5, 9, 2, 6]
numeros.sort(reverse=True)
print(f"Lista ordenada descendentemente: {numeros}")
# Output: Lista ordenada descendentemente: [9, 6, 5, 4, 3, 2, 1, 1]
      
     

reverse(): Invertir el Orden de la Lista (In-place)

El m茅todo reverse() invierte el orden de los elementos de la lista en su lugar.

      
mi_lista = [10, 20, 30, 40]
mi_lista.reverse()
print(f"Lista invertida: {mi_lista}")
# Output: Lista invertida: [40, 30, 20, 10]
      
     

copy(): Crear una Copia Superficial de la Lista

El m茅todo copy() devuelve una copia superficial de la lista. Esto significa que se crea un nuevo objeto lista con los mismos elementos que la lista original. Modificar la copia no afectar谩 a la original (y viceversa) para los elementos inmutables.

      
lista_original = [1, 2, [3, 4]]
lista_copia = lista_original.copy()

lista_copia[0] = 10
lista_copia[2][0] = 30

print(f"Lista original: {lista_original}")
# Output: Lista original: [1, 2, [30, 4]]
print(f"Lista copia: {lista_copia}")
# Output: Lista copia: [10, 2, [30, 4]]
      
     

Nota sobre copy(): Para copias profundas (donde los objetos anidados tambi茅n se copian recursivamente), puedes usar la funci贸n deepcopy() del m贸dulo copy.

Estos m茅todos proporcionan herramientas poderosas para trabajar de manera eficiente con las listas en Python. Conocerlos te permitir谩 escribir c贸digo m谩s conciso y realizar operaciones complejas de manera sencilla.




Publicar un comentario

0 Comentarios