Listas en Python nos facilita la tarea de permitir la manipulación y almacenamiento de datos diversos de manera estructurada y eficiente.
¿Cómo crear una lista en Python?
Para iniciar, se crea una variable llamada todo utilizando corchetes para indicar que se trata de una lista. Dentro de los corchetes, se añaden los elementos separados por comas, por ejemplo:
todo =["Dirigirnos al hotel","Almorzar","Visitar un museo","Volver al hotel"]
¿Qué tipos de datos se pueden almacenar en una lista?
Las listas en Python pueden almacenar múltiples tipos de datos, incluyendo cadenas, números enteros, números flotantes y valores booleanos. También pueden contener otras listas. Ejemplo:
mix =["string",1,2.5,True,[3,4]]print(mix)
¿Cómo se determina la longitud de una lista?
Para saber cuántos elementos hay en una lista, se usa la función len:
print(len(mix))
¿Cómo se accede a elementos específicos de una lista?
Se puede acceder a los elementos de una lista utilizando índices, donde el índice comienza en 0:
print(mix[0])# Primer elementoprint(mix[-1])# Último elemento
¿Cómo se realizan operaciones de slicing en listas?
El slicing permite obtener sublistas a partir de una lista existente, especificando un rango de índices:
print(mix[1:3])# Desde el índice 1 hasta el 2 (el 3 no se incluye)print(mix[:2])# Desde el inicio hasta el índice 1print(mix[2:])# Desde el índice 2 hasta el final
¿Qué métodos de manipulación de listas existen?
Añadir elementos al final: append()
mix.append(False)print(mix)
Insertar elementos en una posición específica: insert()
mix.insert(1,["A","B"])print(mix)
Encontrar la primera aparición de un elemento: index()
print(mix.index(["A","B"]))
Encontrar el mayor y menor elemento: max() y min()
Una lista en Python es una colección ordenada de elementos que puede contener elementos de diferentes tipos (enteros, flotantes, cadenas, etc.). Las listas son mutables, lo que significa que sus elementos se pueden cambiar después de que se ha creado la lista.
# Creación de listas
lista_vacia =[]lista_numeros =[1,2,3,4,5]lista_mixta =[1,"dos",3.0,True]print("Lista vacía:", lista_vacia)print("Lista de números:", lista_numeros)print("Lista mixta:", lista_mixta)# Acceder a elementos
print("\nAcceso a elementos")print("Primer elemento:", lista_numeros[0])print("Último elemento:", lista_numeros[-1])# Modificar elementos
print("\nModificar elementos")lista_numeros[0]=10print("Lista de números modificada:", lista_numeros)# Agregar y eliminar elementos
print("\nAgregar y eliminar elementos")lista_numeros.append(6)print("Lista después de append:", lista_numeros)lista_numeros.insert(2,99)print("Lista después de insert:", lista_numeros)lista_numeros.remove(99)print("Lista después de remove:", lista_numeros)ultimo = lista_numeros.pop()print("Elemento eliminado con pop:", ultimo)print("Lista después de pop:", lista_numeros)elemento = lista_numeros.pop(1)print("Elemento eliminado en la posición 1:", elemento)print("Lista después de eliminar en la posición 1:", lista_numeros)# Operaciones básicas
print("\nOperaciones básicas")lista_concatenada = lista_numeros + lista_mixta
print("Lista concatenada:", lista_concatenada)lista_repetida = lista_numeros *2print("Lista repetida:", lista_repetida)print("¿Está 3 en la lista?",3in lista_numeros)print("Longitud de la lista:",len(lista_numeros))# Iteración sobre los elementos de una lista
print("\nIteración sobre elementos de la lista")for elemento inlista_numeros:print(elemento)# Salida final
print("\nGracias por utilizar el programa de listas. ¡Hasta la próxima!")```# Creación de listas
lista\_vacia = \[]lista\_numeros = \[1,2,3,4,5]lista\_mixta = \[1,"dos",3.0,True]print("Lista vacía:", lista\_vacia)print("Lista de números:", lista\_numeros)print("Lista mixta:", lista\_mixta)\# Acceder a elementos
print("\nAcceso a elementos")print("Primer elemento:", lista\_numeros\[0])print("Último elemento:", lista\_numeros\[-1])\# Modificar elementos
print("\nModificar elementos")lista\_numeros\[0]=10print("Lista de números modificada:", lista\_numeros)\# Agregar y eliminar elementos
print("\nAgregar y eliminar elementos")lista\_numeros.append(6)print("Lista después de append:", lista\_numeros)lista\_numeros.insert(2,99)print("Lista después de insert:", lista\_numeros)lista\_numeros.remove(99)print("Lista después de remove:", lista\_numeros)ultimo = lista\_numeros.pop()print("Elemento eliminado con pop:", ultimo)print("Lista después de pop:", lista\_numeros)elemento = lista\_numeros.pop(1)print("Elemento eliminado en la posición 1:", elemento)print("Lista después de eliminar en la posición 1:", lista\_numeros)\# Operaciones básicas
print("\nOperaciones básicas")lista\_concatenada = lista\_numeros + lista\_mixta
print("Lista concatenada:", lista\_concatenada)lista\_repetida = lista\_numeros \*2print("Lista repetida:", lista\_repetida)print("¿Está 3 en la lista?",3in lista\_numeros)print("Longitud de la lista:",len(lista\_numeros))\# Iteración sobre los elementos de una lista
print("\nIteración sobre elementos de la lista")for elemento in lista\_numeros: print(elemento)\# Salida final
print("\nGracias por utilizar el programa de listas. ¡Hasta la próxima!")
Buen aporte Jhon
Muy completo, gracias!
Para optimizar el uso de la memoria los lenguajes fuertemente tipados hacen uso de arrays, que son como listas pero no son dinamicas, lo que quiere decir que debe almacenar solo datos del mismo tipo y asi asegurar el tamaño de la lista.
Existen otros tipos de Arrays que son las Linked Array, con las que podemos almacenar varios tipos de datos pero esta información no está almacenada consecutivamente en la memoria, Y es este tipo de estructura de datos que usa python para hacer su magia con las Lists, que son dinámicas.
Excelente aporte!
Como aporte a tu comentario, me gustaria indicar un poco de las diferencias que hay entre las listas nativas de Python y los arrays de la librería de Numpy.
Listas en Python.
Estructura: Arreglo de punteros (referencias a objetos).
Flexibilidad: Puede contener elementos de diferentes tipos y tamaños.
Memoria: El array de referencias es contiguo, pero los objetos referenciados pueden estar dispersos en la memoria.
Arrays de la librería de Numpy.
Estructura: Arreglo contiguo de elementos homogéneos.
Homogeneidad: Todos los elementos deben ser del mismo tipo.
Memoria: Los elementos están almacenados contiguamente en memoria
¡Bien hecho, papu!
🤭!
Slicing en Python
La sintaxis general para el slicing es list[start:stop:step]. Si step no se especifica, por defecto es 1.
start: El índice donde comienza el slicing (incluido).
stop: El índice donde se detiene el slicing (excluido).
step: El intervalo entre los índices tomados (opcional).
Siendo así que stop es exclusivo, por tanto, excluye al dato de referencia.
a diferencia de start que es inclusivo
Muchas gracias, siempre el tema del slicing en Python me ha costado de comprender pero esto me lo aclara muchísimo más
Así es me hiciste acordarme de eso genial aporte!
COMPARTO DOS EJERCICIOS QUE PODRIAMOS RESOLVER PARA PRACTICAR LO VISTO EN CLASE
Ejercicio 1: Lista de Compras
Imagina que estás preparando una lista de compras para el supermercado. Crea una lista vacía llamada lista_compras e implementa las siguientes acciones:
Añade los artículos "manzanas", "pan" y "leche" a la lista.
Te das cuenta de que necesitas añadir "huevos" después de "manzanas". Inserta este artículo en la posición correcta.
Un artículo no está disponible. Elimina "pan" de la lista.
Finalmente, muestra la lista completa de compras.
Ejercicio 2: Filtrando Tareas Pendientes
Tienes una lista de tareas pendientes. Crea una lista llamada tareas con las siguientes tareas: "limpiar", "estudiar", "cocinar", "pasear al perro", y "leer".
Realiza las siguientes acciones:
Muestra solo las tareas que contienen la letra "r".
Ordena la lista de tareas alfabéticamente.
Agrega "hacer ejercicio" al final de la lista.
#Ejercicio 1: Lista de Compraslistas_compras =[]listas_compras.append("manzanas")listas_compras.append("pan")listas_compras.append("leche")print(listas_compras)listas_compras.insert(1,"huevos")print(listas_compras)#Option 1: listas_compras.pop(2)#Option 2: listas_compras.remove("pan")#Option 3: del listas_compras[-2] or del listas_compras[2]listas_compras.remove("pan")print(f"{listas_compras} <-")```#Ejercicio 1: Lista de Compraslistas\_compras = \[]listas\_compras.append("manzanas")listas\_compras.append("pan")listas\_compras.append("leche")print(listas\_compras)listas\_compras.insert(1, "huevos")print(listas\_compras)#Option 1: listas\_compras.pop(2)#Option 2: listas\_compras.remove("pan")#Option 3: del listas\_compras\[-2] or del listas\_compras\[2]print(f"{listas\_compras} <-")'''
Sí, puedes imprimir los valores de una lista en reversa utilizando el método reverse() o el slicing. Aquí te muestro ambas opciones:
Usando reverse():
lista =[1,2,3,4,5]lista.reverse()print(lista)
Usando slicing:
lista =[1,2,3,4,5]print(lista[::-1])
Ambas opciones te darán como resultado [5, 4, 3, 2, 1].
No precisamente, hay diferencias importantes
Para quien venga de otro lenguaje, en Python se introduce el término "in place" e indica que "muta" la estructura de datos original, y el resultado de esa operación devuelve None, hay que tener cuidado con eso. Mientras que el slicing [::-1] creará una nueva lista con los valores "revertidos" dejando intacta la original y consumiendo memoria adicional.
Soy nuevo en este tema de la programación, soy abogado y quiero aprender para luego hacer programas de automatización de tareas o revisión y automatización de contratos, pero leyendo los comentarios de los "estudiantes" me doy cuenta que cada uno puede ser fácilmente un profesor, y por más que intento, es demasiada información en muy poco tiempo, se siente un poco de frustración al respecto
Tranquilo! Todo es cuestión de practica, si es complicado pensar en memorizar cada función, pero para eso esta la practica y las documentaciones. Siempre puedes ir investigando a medida que necesites un dato, y la practica hará al maestro.
men, yo necesito aprender para un proyecto personal parecido al tuyo y en ocasiones me frustro pero el compararme solo me hará mas mal, prefiero aprender de mis compañeros, ya llegara el día en el que sea yo el que aporte, espero te sirva mi forma de pensar, un abrazo
La palabra reservada del cuando se aplica a toda la lista eliminó incluso la variable, no solo su contenido, por eso el error, ¿verdad?
Exactamente, la instrucción del lo que hizo fue eliminar la variable de la memoria, por esto en el momento de la ejecución la variable no existe cuando tratamos de acceder a ella.
Para simplemente vaciar la lista, podemos usar el método clear.
Propiedades de las listas:
Son ordenadas.
colores =['red','blue','green','cian','yellow','purple']print(colores)# Se imprimen en el mismo orden:# ['red', 'blue', 'green', 'cian', 'yellow', 'purple']
Guardan diferentes tipos de datos y también pueden ser repetidos.
colores =['red','blue','green','cian','yellow','purple']for i in colores:print(i, end=" ")# Imprime: red blue green cian yellow purple
Son desempaquetables.
coordenadas =[10,20,30]x, y, z = coordenadas
print(x)# Salida: 10print(y)# Salida: 20print(z)# Salida: 30
Retomando en 2026
Conceptos Básicos sobre Listas
Una lista en Python es una colección ordenada de elementos que puede contener elementos de diferentes tipos (enteros, flotantes, cadenas, etc.). Las listas son mutables, lo que significa que sus elementos se pueden cambiar después de que se ha creado la lista.
# Creación de listas
lista_vacia =[]lista_numeros =[1,2,3,4,5]lista_mixta =[1,"dos",3.0,True]print("Lista vacía:", lista_vacia)print("Lista de números:", lista_numeros)print("Lista mixta:", lista_mixta)# Acceder a elementos
print("\nAcceso a elementos")print("Primer elemento:", lista_numeros[0])print("Último elemento:", lista_numeros[-1])# Modificar elementos
print("\nModificar elementos")lista_numeros[0]=10print("Lista de números modificada:", lista_numeros)# Agregar y eliminar elementos
print("\nAgregar y eliminar elementos")lista_numeros.append(6)print("Lista después de append:", lista_numeros)lista_numeros.insert(2,99)print("Lista después de insert:", lista_numeros)lista_numeros.remove(99)print("Lista después de remove:", lista_numeros)ultimo = lista_numeros.pop()print("Elemento eliminado con pop:", ultimo)print("Lista después de pop:", lista_numeros)elemento = lista_numeros.pop(1)print("Elemento eliminado en la posición 1:", elemento)print("Lista después de eliminar en la posición 1:", lista_numeros)# Operaciones básicas
print("\nOperaciones básicas")lista_concatenada = lista_numeros + lista_mixta
print("Lista concatenada:", lista_concatenada)lista_repetida = lista_numeros *2print("Lista repetida:", lista_repetida)print("¿Está 3 en la lista?",3in lista_numeros)print("Longitud de la lista:",len(lista_numeros))# Iteración sobre los elementos de una lista
print("\nIteración sobre elementos de la lista")for elemento inlista_numeros:print(elemento)# Salida final
print("\nGracias por utilizar el programa de listas. ¡Hasta la próxima!")
Por qué el slicing print(mix[0:2]) muestra como resultado desde la posicion 0 hasta la posicion 1 y no hasta la posicion 2 esa es una interrogante que agradecería que alguien pueda explicar
Hola! Según la documentación de Python, cuando extraes elementos de la lista usando el formato “mix[0:2]”, se retornan los elementos desde el inicio indicado, o sea “0”, hasta el final sin incluir el elemento o sea hasta el “2” sin incluirlo lo que equivale al 1.
Python incluye el primer valor, pero excluye el último.
del es una declaración en Python que se usa para eliminar elementos de listas (y otros objetos). No es una función, por lo que no lleva paréntesis. Se usa para indicar que quieres borrar una variable o un elemento específico en una lista según su índice.
Por ejemplo, para eliminar el último elemento de una lista llamada numbers, escribirías del numbers[-1]. Esto elimina el elemento en la posición especificada y es directo, sin la necesidad de paréntesis como en las funciones.
Por aqui jugando un poco con los elementos de la lista y el ciclo for para imprimir la posición del elemento y el elemento de cada posición:
mix =['uno',2,3.14,True,[1,2,3]]for i inrange(len(mix)):print(f"{i} Elemento: {mix[i]}")
Slicing en listas
Para obtener todos los elementos no era necesario abrir corchetes. Aún así, considero que este es un buen aporte.
Y también se puede obtener en una secuencia de pasos
print(mi_lista[::2])
Feliz navidad!
la profe siempre que actualiza alguna cadena o lista le da luego a print ósea imprime la cadena o la lista después de haberla modificado, eso es necesario siempre ?
La transcripción muestra que se usa print para verificar los cambios, pero no indica que sea necesario siempre imprimir tras modificar.
Diferencias entre string y list:
Tipos de datos:
Una string es una secuencia inmutable de caracteres, y todos los elementos son caracteres.
Una list es una secuencia mutable que puede contener cualquier tipo de dato (números, strings, objetos, etc.).
Mutabilidad:
Las strings son inmutables, lo que significa que no se pueden modificar después de su creación; cualquier cambio genera una nueva string.
Las lists son mutables, por lo que puedes modificar sus elementos directamente sin crear una nueva lista.
Operaciones:
En una list, puedes añadir, eliminar, o modificar elementos usando métodos como append(), remove(), o asignando valores directamente.
En una string, estas operaciones no son posibles sin crear una nueva string.
Indexación y slicing:
Ambas soportan indexación (string[0], list[0]) y slicing (string[1:3], list[1:3]), pero lo que devuelven es diferente; una string devuelve otra string, mientras que una list devuelve una sublista.
Funciones y métodos disponibles:
Los métodos disponibles en una string (como upper(), split()) son diferentes de los métodos de una list (como append(), pop(), sort()).
Similitudes:
Ambas son secuencias que soportan iteración (for char in string, for item in list).