Domina las listas en Python con ejemplos claros: aprende cómo se comportan los operadores de suma y multiplicación, y cuándo usar métodos como append, pop, remove, sort y la función sorted. Aquí verás cómo crear, modificar, ordenar y analizar listas de forma segura y eficiente.
¿Qué hacen los operadores de listas en Python?
Las listas tienen operadores con comportamiento contextual. En números, suma y multiplicación son aritméticas; en listas, cambian de significado. La suma realiza concatenación y la multiplicación repite los elementos.
En listas, A + B concatena todos los elementos de ambas listas en una nueva lista.
A * n repite la misma lista n veces.
**Solo están permitidos + y *** con listas. División, módulo y resta no aplican.
Si vienes de vectores matemáticos, recuerda: en Python la suma de listas no es elemento a elemento.
Ejemplos:
A =[1,2]B =[2,3]A + B # [1, 2, 2, 3]A *2# [1, 2, 1, 2]# Operadores no válidos con listas# A / B -> TypeError# A % B -> TypeError# A - B -> TypeError
También se mostró cómo generar rangos para practicar y ver los efectos:
# Pares del 0 al 10 no inclusivoa =list(range(0,10,2))# [0, 2, 4, 6, 8]# Otra lista con 0..10 no inclusivob =list(range(0,10))# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]a + b # Concatenaciónb *2# Repetición
¿Cómo modificar listas con métodos clave?
Las listas son mutables: puedes cambiar sus elementos y su tamaño. A diferencia de los strings (inmutables), con listas puedes añadir, extraer y eliminar elementos fácilmente.
append: añade un elemento al final y crece la lista.
pop: elimina y retorna un elemento; por defecto el último, o por índice.
del: elimina por índice usando el keyword de Python.
remove: elimina por valor la primera coincidencia.
len: devuelve el tamaño actual de la lista.
Ejemplo práctico con frutas y comportamiento tipo fila:
fruits =[]fruits.append("apple")len(fruits)# 1fruits.append("banana")fruits.append("kiwi")# Sacar el último y conservar su valorsome_fruit = fruits.pop()# "kiwi"fruits # ["apple", "banana"]# Sacar por índice (el primero)some_fruit = fruits.pop(0)# "apple"fruits # ["banana"]# Eliminar por índice con del (índice negativo: desde el final)# Ejemplo genérico con números:nums =[1,2,3]del nums[-1]# elimina 3, la última posición# Eliminar por valornums =[1,2,2,3]nums.remove(2)# elimina la primera aparición de 2 -> [1, 2, 3]
Claves importantes:
pop retorna el valor eliminado, ideal para reasignar o registrar quién salió de la lista.
Con índices negativos (-1) apuntas desde el final hacia el inicio.
remove busca por valor, no por posición.
¿Cómo ordenar listas y explorar sus métodos?
Ordenar puede hacerse sin tocar la lista original o modificándola en sitio. Además, puedes inspeccionar métodos disponibles para aprender más rápidamente.
sorted: función built-in que devuelve una nueva lista ordenada.
sort: método que ordena en sitio la lista original.
dir: muestra los métodos y atributos disponibles del objeto.
Ejemplo con números aleatorios usando el módulo random:
import random
random_numbers =[]for _ inrange(10): random_numbers.append(random.randint(0,15))# Ordenar sin modificar la originalordered_numbers =sorted(random_numbers)# Ordenar modificando la originalrandom_numbers.sort()# Explorar métodos disponibles en listasdir(random_numbers)
Puntos clave al ordenar:
Usa sorted cuando quieras conservar la lista original.
Usa sort cuando quieras actualizar la misma lista.
El ordenamiento funciona con números y con strings de forma lexicográfica.
¿Quieres practicar más? Prueba a combinar rangos con append y luego ordena con sorted para comparar resultados con sort. Y si necesitas recordar qué puedes hacer con una lista, dir(lista) te mostrará todas las opciones.
¿Te quedó alguna duda o tienes un ejemplo interesante con append, pop, remove o sort? Compártelo en los comentarios y cuéntanos qué resultado obtuviste.
Suma (+) Concatena dos o más listas:
a=[1,2]
b=[3,4]
a + b --> [1,2,3,4]
Multiplicación (*) Repite la misma lista:
a=[1,2]
a * 2 —> [1,2,1,2]
Añadir elemento al final de la lista:
a=[1]
a.append(2)=[1,2]
Eliminar elemento al final de la lista:
a=[1,2]
b=a.pop()
a=[1]
Eliminar elemento dado un indice:
a=[1,2]
b=a.pop(1)
a=[2]
Ordenar lista de menor a mayor, esto modifica la lista inicial
a=[3,8,1]
a.sort() —> [1,3,8]
Ordenar lista de menor a mayor, esto NO modifica la lista inicial
a=[3,8,1]
a.sorted() —> [1,3,8]
Eliminar elementos de lista Elimina el elemento de la lista dado su indice
a=[1,2,3]
del a[0] —> a[2,3]
Eliminar elementos de lista Elimina el elemento de la lista dado su valor
a=[0, 2, 4, 6, 8]
a.remove(6)
a=[0, 2, 4, 8]
Range creacion de listas en un rango determinado
a=(list(range(0,10,2))) -->crea un conteo desde 0 hasta 10 en pasos de 2 en 2.
a=[0,2,4,6,8]
Tamaño lista len Devuelve el valor del tamaño de la lista:
a=[0,2,4,6,8]
len(a)=5
Gracias por el resumen, esta perfecto.
Excelente aporte! Gracias!
Así sería el ejemplo de la cola del cine
cine.append( cola.pop(0))
si queremos ordenar una lista de manera descendente se puede usar:
sorted(list, reverse=True)list.sort(reverse=True)
Metodos de Listas
El tipo de dato lista tiene algunos métodos más. Aquí están todos los métodos de los objetos lista:
list.append(x)
Agrega un ítem al final de la lista. Equivale a a[len(a):] = [x].
list.extend(iterable)
Extiende la lista agregándole todos los ítems del iterable. Equivale a a[len(a):] = iterable.
list.insert(i, x)
Inserta un ítem en una posición dada. El primer argumento es el índice del ítem delante del cual se insertará, por lo tanto a.insert(0, x) inserta al principio de la lista, y a.insert(len(a), x) equivale a a.append(x).
list.remove(x)
Quita el primer ítem de la lista cuyo valor sea x. Es un error si no existe tal ítem.
list.pop([i])
Quita el ítem en la posición dada de la lista, y lo devuelve. Si no se especifica un índice, a.pop() quita y devuelve el último ítem de la lista. (Los corchetes que encierran a i en la firma del método denotan que el parámetro es opcional, no que deberías escribir corchetes en esa posición. Verás esta notación con frecuencia en la Referencia de la Biblioteca de Python.)
list.clear()
Quita todos los elementos de la lista. Equivalente a del a[:].
list.index(x[, start[, end]])
Devuelve un índice basado en cero en la lista del primer ítem cuyo valor sea x. Levanta una excepción ValueError si no existe tal ítem.
Los argumentos opcionales start y end son interpetados como la notación de rebanadas y se usan para limitar la búsqueda a una subsecuencia particular de la lista. El index retornado se calcula de manera relativa al inicio de la secuencia completa en lugar de con respecto al argumento start.
list.count(x)
Devuelve el número de veces que x aparece en la lista.
list.sort(key=None, reverse=False)
Ordena los ítems de la lista in situ (los argumentos pueden ser usados para personalizar el orden de la lista, ve sorted() para su explicación).
list.reverse()
Invierte los elementos de la lista in situ.
list.copy()
Devuelve una copia superficial de la lista. Equivalente a a[:].
Un ejemplo que usa la mayoría de los métodos de lista:
>>> frutas =['naranja','manzana','pera','banana','kiwi','manzana','banana']>>> frutas.count('manzana')2>>> frutas.count('mandarina')0>>> frutas.index('banana')3>>> frutas.index('banana',4) # Find next banana starting a position 46>>> frutas.reverse()>>> frutas
['banana','manzana','kiwi','banana','pera','manzana','naranja']>>> frutas.append('uva')>>> frutas
['banana','manzana','kiwi','banana','pera','manzana','naranja','uva']>>> frutas.sort()>>> frutas
['manzana','manzana','banana','banana','uva','kiwi','naranja','pera']>>> frutas.pop()'pera'```
Información tomada del Tutorial de Python de
gracias
Ta bueno
También está lista.insert(índice, elemento) :)
LIST COMPREHENSIONS:
Es importante que los entendáis ya que son bastante usados con las nuevas versiones de python: Ahorran código y lo hacen más legible.
Para más métodos de las listas esta es la documentación: Docs
Otra forma de eliminar elementos de una lista:
list.clear()
¡Gracias @juanpinzon!
**remove **nos permite pasarle un valor para que Python compare internamente los valores y determina cuál de ellos hace match o es igual para eliminarlo. Solamente borra la primera ocurrencia, es decir si hay varios elementos repetidos con el mismo valor supongamos 3 ocurrencias, solo borra una de ellas, dejando dos ocurrencias.
Pongo un ejemplo de una lista numérica ordenada que contiene 3 ocurrencias del valor 5.
[3,4,4,5,5,5,7,8,9]>>> numeros_ordenado.remove(5)>>> numeros_ordenado.remove(5)>>> numeros_ordenado.remove(5)>>> numeros_ordenado.remove(5)Traceback(most recent call last):File"<stdin>", line 1,in<module>
Me permite borrarlo en 3 ocasiones la cuarta ocasión ya no quedaba ninguna ocurrencia del valor 5 en la lista y muestra el error.
dir(nombre variable) me da como resultado todos los metodos que puedo ejecutar a esa variable
Aprovechando que al multiplicar una lista se genera una nueva referencia, si multiplicamos una lista * 1, se nos genera una nueva referencia en la que está copiada la misma lista, sin tener que utilizar el módulo copy.
del a[-1]: Con del podemos eliminar elementos de una lista. En el ejemplo anterior estamos eliminando el último elemento de la lista a.
Append()
Este método nos permite agregar nuevos elementos a una lista.
my_list.append(10) # [2, 5, 'DevCode', 1.2, 5, 10]
my_list.append([2,5]) # [2, 5, 'DevCode', 1.2, 5, [2, 5]]
Podemos agregar cualquier tipo de elemento a una lista, pero tengan en cuenta lo que pasa cuando agregamos una lista dentro de otra, esta lista se agrega como uno y solo un elemento.
Extend()
Extend también nos permite agregar elementos dentro de una lista, pero a diferencia de append al momento de agregar una lista, cada elemento de esta lista se agrega como un elemento más dentro de la otra lista.
my_list.extend([2,5]) # [2, 5, 'DevCode', 1.2, 5, 2, 5]
Remove()
El método remove va a remover un elemento que se le pase como parámentro de la lista a donde se le esté aplicando.
my_list.remove(2) # [5, 'DevCode', 1.2, 5]
En este ejemplo estamos removiendo el elemento 2, de la lista que tiene por nombre "my_list".
Index()
Index devuelve el número de indice del elemento que le pasemos por parámetro.
my_list.index('DevCode') # 2
Aquí estamos preguntando por el indice de la cadena 'DevCode' dentro de la lista "my_list", esto devuelve 2.
Count()
Para saber cuántas veces un elemento de una lista se repite podemos utilizar el metodo count().
my_list.count(5) # 2
Contamos cuantas veces se repite el número 5 dentro de la lista, y esto devuelve 2.
Reverse()
También podemos invertir los elementos de una lista.
my_list.reverse() # [5, 1.2, 'DevCode', 5, 2]
Estas son algunos de los métodos más útiles y más utilizados en las listas.Python es un gran lenguaje de programación que hace las cosas de una manera realmente sencilla, si quieres conocer mucho más y a profundidad esta tecnología ingresa al Curso de Python que tenemos en Devcode, te esperamos!
En la Descripción de esta sesión (21. Operaciones con listas )
Dice:
sort modifica la propia lista y ordenarla de mayor a menor .
Creo que debería de decir:
sort modifica la propia lista al ordenarla.
Ya que se una lista se puede ordenar en forma ascendente o en forma descendente.
A continuación una descripción (parcial) de la función sort de Python
sort()
Parameters:
By default, sort() doesn’t require any extra parameters. However, it has two optional parameters:
reverse -Iftrue, the sorted list is reversed(or sorted inDescending order)key -function that serves as a key for the sort comparison
Supongo que al no marcar tu comentario como pregunta, el staff no la revisó…
Muchas gracias, Luis.
Con append : solamente se puede agregar un elemento a la lista.
Como sumar elementos dentro de ua lista.
a = [2, 1, 1, 1] <-- Deseo que se sumen los numero, pero las comas, me lo impiden.
Puedes sumar los elementos de esa lista con sum:
a =[2,1,1,1]sum(a)
funcion sum()
Me dio curiosidad probar el método remove con valores repetidos y solamente elimina el primer elemento que encuentra con el valor ingresado.
.
Las estructuras de datos estándar que incorpora Python son: list, tuple, dict, y set.
.
Estructura de una lista:
mi_lista =[]mi_lista2 =list()
Operaciones con listas
Suma==ConcatenaciónMultiplicación==Repetición
.
En estas clases veremos el uso de las listas las cuales pueden aplicar diferentes métodos para aumentar su funcionalidad. Los métodos son:
.
append(). Agrega un elemento al final de la lista.
list.append(item)
clear(). Quita todos los elementos de la lista.
list.clear()
copy(). Regresa (copia), los elementos de la lista.
new_list = list.copy()
count(). Regresa el número de veces que un elemento aparece en la lista.
list.count(element)
extend(). Agrega elementos de un iterable(lista, tupla, string, etc) al final de la lista actual.
list1.extend(iterable)
index() Regresa el índice del primer elemento con el valor espcificado.
list.index(element, start, end)
insert(). Agrega elementos en una posición de índice específica.
list.insert(i, elem)
pop(). Quita elementos de una posición específica y permite agregarlos a otra lista.
list.pop(index)
remove(). Elimina el primer elemento que encuentra en la lista con el valor dado. Regresa None.
list.remove(element)
reverse(). Invierte el orden de la lista. No toma argumentos.
list.reverse()
sort(). Ordena la lista de forma ascendente o descendente(reverse = True). No retorna valores.
list.sort(key=..., reverse=...)
Exelente clase
import random
my_list_a =list(range(0,10))my_list_b =list(range(10,20))print(my_list_a)print(my_list_b)# Operacionesprint('#'*30)print(my_list_a + my_list_b)print(my_list_a *2)
# append
print('#'*30)my_list_a.append(10)print(my_list_a)
# pop
print('#'*30)print(my_list_a.pop())# print(my_list_a.pop(0))#Using an index
print(my_list_a)
# del
print('#'*30)my_list_a.append(99)print(my_list_a)del my_list_a[-1] # deleting last index
print(my_list_a)
# sorting the list
print('#'*30)my_list_a.sort(reverse=True)print(my_list_a)# Sortrandom_numbers =[]for i inrange(10): random_numbers.append(random.randint(0,15))print(random_numbers)# Usando la funcion sorted para ordenar una lista, en este caso no se modifica la lista original
ordered_numbers =sorted(random_numbers)print(ordered_numbers)# Si usamos la funcion sort de la lista la lista si es modificada
random_numbers.sort()print(random_numbers)