ANDREA PATRICIA LOPEZ GUERRERO
Profe me encanta como enseña, de los mejores profesores que tiene platzi
Las listas en Python son una de las primeras colecciones que necesitas dominar si quieres manejar datos de forma eficiente. Aquí aprenderás qué son, cómo crearlas, modificarlas y qué métodos te permiten ordenarlas, unirlas o eliminar elementos, todo con ejemplos prácticos pensados para quien empieza a programar.
¿Qué es una lista en Python y qué la hace especial?
Una lista es una colección de elementos asignados a una sola variable. Tiene tres características que la definen: es ordenada, mutable y permite duplicados. Eso significa que cada elemento ocupa una posición fija, puedes cambiarlo cuando quieras y nada te impide repetir valores.
Mira este ejemplo simple con frutas:
python frutas = ["manzana", "naranja", "mandarina"] print(frutas) print(type(frutas)) # <class 'list'>
Al imprimirla, Python te devuelve la lista tal como la escribiste y confirma que es de tipo list [01:00].
¿Qué significa que una lista sea ordenada? Que cada elemento tiene una posición fija llamada índice, y los índices empiezan en cero. El primer elemento es el índice 0, el segundo es el 1, y así sucesivamente.
¿Cómo accedo y modifico elementos por índice?
Para acceder a un elemento usas corchetes con el índice. Si quieres la naranja, escribes frutas[1] porque es la segunda posición [01:30]. Y como las listas son mutables, puedes sobrescribir ese valor directamente:
python frutas[1] = "banana" print(frutas) # ['manzana', 'banana', 'mandarina']
Un detalle importante: Python lee el código de arriba hacia abajo. Si imprimes la lista antes del cambio, verás el valor original; si la imprimes después, verás el nuevo.
¿Puedo mezclar tipos de datos en una lista?
Sí, y aquí viene lo interesante. Una lista puede contener strings, números y booleanos al mismo tiempo:
python lista = ["Juan", 25, True] print(type(lista)) # <class 'list'>
Python no te obliga a que todos los elementos sean del mismo tipo [03:30].
¿Cómo cuento cuántos elementos tiene una lista?
Usa len(), que viene de length (largo en inglés). Funciona igual que con strings:
python print(len(frutas)) # 4
¿Qué métodos puedo usar para modificar una lista?
Python te da varios métodos para agregar, quitar y reorganizar elementos. Son las herramientas que vas a usar todo el tiempo cuando trabajes con colecciones.
¿Cómo agrego elementos con append e insert?
El método append agrega un elemento al final de la lista. El método insert te permite elegir exactamente en qué posición lo colocas [05:30].
python vehiculos = ["auto", "moto", "avion"] vehiculos.append("barco")
['auto', 'moto', 'avion', 'barco']
vehiculos.insert(1, "bicicleta")
['auto', 'bicicleta', 'moto', 'avion', 'barco']
Cuando insertas en el índice 1, todos los elementos que estaban desde esa posición se corren un lugar adelante.
¿Cómo elimino elementos con remove y pop?
Tienes dos formas: remove elimina pasándole el valor del elemento, mientras que pop lo elimina pasándole el índice [07:00].
python vehiculos.remove("auto") # elimina por valor vehiculos.pop(1) # elimina por índice
¿Cuál es la diferencia entre remove y pop? remove recibe el elemento que quieres borrar, pop recibe la posición. Usa pop cuando sepas el índice y remove cuando sepas el valor.
¿Cómo ordeno una lista alfabética o inversamente?
Con sort ordenas alfabéticamente y con reverse inviertes el orden actual:
python vehiculos.sort() # orden alfabético vehiculos.reverse() # orden invertido
¿Cómo trabajo con rangos y verifico elementos?
Las listas comparten propiedades con los strings. Puedes tomar un rango de elementos usando dos puntos entre los índices:
python print(frutas[0:2]) # del índice 0 hasta el 1 print(frutas[:2]) # desde el inicio hasta el 1 print(frutas[1:]) # desde el índice 1 hasta el final
Recuerda: el índice final no es inclusivo. Si pones [0:2], obtienes los elementos en las posiciones 0 y 1, no el 2 [04:30].
Para verificar si un elemento existe dentro de una lista, usas la palabra in dentro de un condicional:
python if "manzana" in frutas: print("La manzana está dentro de las frutas")
Esto convierte la verificación en una condición verdadera y ejecuta el bloque interno del if.
¿Cómo uno dos listas en Python?
Tienes dos caminos: el operador + y el método extend. La diferencia es clave [09:30].
+ crea una nueva lista resultado de concatenar las dos originales sin modificarlas.extend modifica la primera lista, agregándole los elementos de la segunda.python coleccion1 = [1, 2, 3] coleccion2 = [4, 5, 6]
coleccion3 = coleccion1 + coleccion2 # nueva lista [1,2,3,4,5,6] coleccion1.extend(coleccion2) # coleccion1 ahora es [1,2,3,4,5,6]
Si necesitas conservar las listas originales intactas, usa el operador +. Si quieres acumular elementos en una lista existente, extend es tu opción.
¿Qué método de listas te ha resultado más útil hasta ahora? Cuéntame en los comentarios cómo lo estás aplicando en tus proyectos.
Hice un pequeño programa que crea un mazo de cartas, reparte 10 cartas a cada jugador (2 jugadores) y las misma las quita del mazo. Utilicé el método pop() que toma la última carta del mazo. Anidé un método dentro del otro para que la carta que quite es la que se agrega al jugador.
import random #Se crea el mazo de cartas. cards_deck = [] #Con un bucle for, llenamos el mazo. #Son 4 pintas: corazones ♥️, diamantes ♦️, tréboles ♣️ y picas ♠️ #Cada pinta tiene 13 cartas. pintas = ['♥️', '♦️', '♣️', '♠️'] valores = ['A','2','3','4','5','6','7','8','9','10','J','Q','K'] for pinta in pintas: for carta in valores: valor = str(carta) + pinta cards_deck.append(valor) #Se baraja el mazo random.shuffle(cards_deck) #print(cards_deck) #Se reparten 10 cartas para cada jugador. player1 = [] player2 = [] #Ciclo for para quitar cartas del mazo y entregar a cada jugador. for i in range(10): player1.append(cards_deck.pop()) player2.append(cards_deck.pop()) #Se muestran las cartas de cada jugador y del mazo. print(player1,'\n') print(player2,'\n') print(cards_deck,'\n')
Me gusto mucho!
personalmente reemplazaria este loop:
for i in range(10): player1.append(cards_deck.pop()) player2.append(cards_deck.pop())
por:
player1 = cards_deck[0:10] plater2 = cards_deck[10:22]
ANDREA PATRICIA LOPEZ GUERRERO
Profe me encanta como enseña, de los mejores profesores que tiene platzi
Francisco De La Llave
20 de 10 la clase, ahora entiendo las listas de mejor manera.
Kevin Hernandez
MARIO AYALA
Sí la lista tiene varios valores iguales y usas remove, este va a removerlos todos.
Paola Garcia
como pones comentario en todas las filas del Código?
Omar Sintuj
puedes usar usar ("""...""" o '''...''') para comentar varias líneas de código.
Carolina Padilla
Seleccionas todo el bloque que desees comentar, luego oprimes CTRL + }
Francisco Jose Saravia
siento que seria mejor utilizar todo esto en un programa, mi mente no funciona solo con significado, sino con aplicacion real :(
Armando Aguilar
a mi me pasa al revez, siento que necesito entender primero todo por separado para luego aplicarlo a algo. puedes ver el curso de fundamentos de python pero con carli code, ella lo explicó aplicandolo en varios escenarios
Yorly Andrea Roa Hernández
# UNIR LISTAS # + coleccion1 = [1,2,3] coleccion2 = [4,5,6] coleccion3 = coleccion1 + coleccion2 print(coleccion3) #stdout:[1, 2, 3, 4, 5, 6] # EXTEND coleccion1.extend(coleccion2) print(coleccion1) #stdout:[1, 2, 3, 4, 5, 6] print(coleccion3) #stdout:[1, 2, 3, 4, 5, 6] #INTERESANTE, REVISION # SI USARA .APPEND, ANIDARIA LA LISTA COMPLETA EN LA ULTIMA POSICION # coleccion1.append(coleccion2) # print(coleccion1) -> stdout: [1, 2, 3, [4, 5, 6]] <-- ¡Ojo a los corchetes!
Santiago Guzmán
Estaba probando en un compilador de Python y me surgieron un par de preguntas con remove. Que pasa si quiero eliminar numeros con remove? Se puede? Pues la respuesta rapida es que si, se pueden eliminar numeros
listaNums = [1,2,3] listaNums.remove(3) # Elimina a 3 print(listaNums) # [1, 2]
Entonces me surgio otra pregunta. Si tengo muchos numeros repetidos, puedo eliminar varios con un solo remove? La respuesta corta es que no. Solo elimina el primer numero de izquierda a derecha. Pero la respuesta larga es que en teoria, con un bucle, si.
listThree = [1,3,3,3] listThree.remove(3) # Solo elimina el primer 3 print(listThree) # [1,3,3]
Y me pregunte si podia eliminar booleanos. Y si. Pero me encontre con un detalle que no conocia de Python. Este lenguaje de programacion valida 0 como False y 1 como True. Python los toma como valores binarios.
listBool = [0, 1, True, "Manzana", False] listBool.remove(True) # Elimina 1. No a True listBool.remove(False) # Elimina 0. No a False print(listBool) # [True, 'Manzana', False]
Es muy interesante saber que Python toma estos valores como binarios, ya que pense que los tomaba como truthys o falsys
JOSE ANTONIO MESA GONZALEZ
camilo plata
Miguel Ramírez
Diego Mauricio Zuluaga Rodríguez
How do lists handle mixed data types?
Las listas en Python son muy flexibles; pueden contener diferentes tipos de datos, como strings, números y booleanos, dentro de la misma lista. Esto es útil para agrupar información diversa relacionada en una sola estructura.
Ximena Leguizamon
Excelentee Claseeeee
Oscar Andres Montes Tapiero
Daniel Carmona
Estan geniales las Listas
Maria Camila Rodriguez Moreno
Listas y For anidado
#Union: Combina dos listas en una sola lista. pasajeros = ["Juan", "Maria", "Pedro"] viaje = vehiculos + pasajeros print(viaje) # Salida: ['moto', 'carro', 'camioneta', 'avion', 'Juan', 'Maria', 'Pedro'] for persona in pasajeros: for vehiculo in vehiculos: print(f"{persona} viaja en {vehiculo}") #Salida: Juan viaja en moto, Juan viaja en carro, etc. #f-strings: Permiten incluir variables dentro de cadenas de texto utilizando llaves {}.
Saludos, Maria CRM
Juan Felipe Revelo Palacios
a alguien más le saca un error de ruff con elementos duplicados??
William Mauricio Granados Melo
existe otro metodo?, escuche algo cmo el metodo burbuja
El método burbuja es un algoritmo clásico de ordenamiento, no un método integrado de Python como .sort(). Funciona comparando elementos adyacentes y cambiando sus posiciones si están desordenados, repitiendo el proceso hasta que toda la lista queda acomodada.
¿Te imaginas cuántas pasadas necesitaría una lista de cuatro números totalmente invertida usando ese algoritmo?
# 1. Crear una lista (ordenada, mutable, con duplicados) invitados = ["Ana", "Betto", "Carla", "Betto"] print("Lista inicial:", invitados) # 2. Acceso por índices y Slicing (rangos) print("El primer invitado es:", invitados[0]) print("Los dos primeros son:", invitados[:2]) # No incluye el índice 2 # 3. Medir el largo con len() print("Cantidad de invitados:", len(invitados)) # 4. Modificar un elemento (Mutabilidad) invitados[1] = "Bernardo" # Cambiamos a 'Betto' por su nombre real print("Lista tras corrección:", invitados) # 5. Agregar elementos (append e insert) invitados.append("Daniel") # Al final invitados.insert(2, "Elena") # En la posición 2 print("Lista tras agregar:", invitados) # 6. Eliminar elementos (remove y pop) invitados.remove("Betto") # Elimina la primera coincidencia de 'Betto' eliminado = invitados.pop(0) # Elimina y guarda a 'Ana' (índice 0) print("Invitado que no pudo venir:", eliminado) print("Lista actual:", invitados) # 7. Comprobar pertenencia (in) if "Elena" in invitados: print("Elena ya está en la lista.") # 8. Ordenar (sort y reverse) invitados.sort() # Orden alfabético: ['Bernardo', 'Carla', 'Daniel', 'Elena'] print("Lista ordenada:", invitados) invitados.reverse() # Invierte el orden print("Lista invertida:", invitados) # 9. Unir listas (+ y extend) nuevos = ["Fran", "Gaby"] lista_final = invitados + nuevos # Crea una nueva print("Lista final combinada:", lista_final)