Eduardo Guerrero
Desarrolladores de Python: --Las tuplas no se pueden modificar-- El profe Segie code: --Cómo qué no???--
Las tuplas en Python son colecciones ordenadas e inmutables que permiten elementos duplicados y distintos tipos de datos. Si vienes de trabajar con listas, vas a encontrar muchas similitudes, pero con una diferencia clave: una vez creadas, no puedes modificarlas directamente. Esto las vuelve útiles cuando necesitas garantizar que los datos no cambien durante la ejecución.
¿Qué es una tupla en Python y cómo se declara?
Una tupla se declara entre paréntesis, separando cada elemento con coma. Por ejemplo, podrías guardar tres lenguajes de programación así:
python tecnologias = ("Python", "JavaScript", "Go")
Cada elemento ocupa una posición o índice empezando en cero. Python está en el índice 0, JavaScript en el 1 y Go en el 2. Si imprimes tecnologias[1], obtienes solo JavaScript.
¿Las tuplas permiten elementos duplicados? Sí. Puedes repetir valores sin problema, por ejemplo
("Python", "JavaScript", "Go", "Python"), y la funciónlen()contará los cuatro elementos.
¿Cómo crear una tupla de un solo elemento sin que Python la confunda?
Aquí hay un detalle que confunde a quienes empiezan. Si escribes fruta = ("manzana") y consultas su tipo con type(), Python te devolverá string, no tupla. Los paréntesis se ignoran cuando hay un solo valor.
Para que Python la reconozca como tupla, debes agregar una coma final:
python fruta = ("manzana",)
Con esa coma, el tipo cambia a tupla. Es un truco pequeño pero esencial.
¿Cómo trabajar con distintos tipos de datos y desempaquetar tuplas?
Las tuplas, igual que las listas, aceptan tipos de datos mezclados dentro de la misma estructura. Puedes combinar strings, enteros y booleanos sin que Python proteste:
python tupla = ("Python", 5, True)
Y aquí viene una de las funcionalidades más útiles: el desempaquetado. Puedes asignar cada elemento de la tupla a una variable distinta en una sola línea.
python x, y, z = tupla
Después de esa línea, x vale Python, y vale 5 y z vale True. Este desempaquetado también funciona con listas y conjuntos.
¿Cómo concatenar y duplicar tuplas con operadores?
Python te permite unir dos tuplas con el operador + y multiplicar sus elementos con *. Mira este ejemplo:
python tupla1 = (1, 2, 3) tupla2 = (3, 4, 5) tupla3 = tupla1 + tupla2
El resultado es (1, 2, 3, 3, 4, 5). El número 3 aparece dos veces porque las tuplas permiten duplicados.
Si multiplicas una tupla por un entero, repites todos sus elementos esa cantidad de veces. tupla * 2 devuelve los elementos dos veces seguidas en la terminal.
¿Puedo recorrer una tupla con un bucle for? Sí. La sintaxis es idéntica a la de una lista:
for item in tupla: print(item). Esto imprime cada elemento uno por uno.
¿Cómo modificar una tupla si es inmutable?
Como las tuplas no permiten agregar, eliminar ni cambiar elementos directamente, no tienes acceso a métodos como append(). Pero existe un truco práctico: convertir la tupla en lista, modificarla y volver a convertirla en tupla.
El proceso se apoya en dos funciones de casteo, list() y tuple(). Aquí el flujo paso a paso:
list(tupla_a_modificar).append(), remove() o asignación por índice.tuple(lista_comodin).Un ejemplo completo se vería así:
python tupla_a_modificar = ("Python", "JavaScript", "Go") lista_comodin = list(tupla_a_modificar) lista_comodin.append("ReactJS") tupla_a_modificar = tuple(lista_comodin)
Al imprimir tupla_a_modificar, ahora verás ("Python", "JavaScript", "Go", "ReactJS"). La tupla original sigue siendo inmutable; lo que hiciste fue reemplazarla por una nueva con los cambios aplicados.
Este enfoque es útil cuando necesitas estructuras inmutables la mayor parte del tiempo, pero ocasionalmente requieres ajustar su contenido sin perder el control sobre los datos.
¿Para qué proyecto crees que usarías una tupla en lugar de una lista? Cuéntame en los comentarios cómo te imaginas aplicando esta estructura en tu próximo programa.
Eduardo Guerrero
Desarrolladores de Python: --Las tuplas no se pueden modificar-- El profe Segie code: --Cómo qué no???--
DAVID SILVA HERNANDEZ
Pregunta:
Si las listas y las tupplas tienen, a simple vista las mismas funcionalidades, ¿en qué circunstancias se utilizan las tuplas en lugar de listas? teniendo en cuenta que las listas son como tuplas pero con esteroides (porque son mutables :v)
Sergie Code
ProfesorSiempre que necesites datos fijos de solo lectura tuplas! También son levemente más performantes!
Gabriel Londoño
He leído que las tuplas ocupan menos espacio en memoria, por lo que, en lo posible, se usa tuplas con grandes cantidades de información no modificable
Luis Gerardo López Ruiz
Gerson Mendoza
Excelente resumen, gracias
Ing. Moisés Toro
Sin duda de los mejores profes de Platzi que he visto
Jesús David López Sáez
Este profesor explica súper bien y con mucho entusiasmo, lo felicito mucho 👏👏👏
Jhon Freddy Tavera Blandon
Las tuplas pueden contener cualquier tipo de dato
A diferencia de otros lenguajes más rígidos, Python permite mezclar tipos:
Las tuplas no limitan el tipo de sus elementos.
tupla_mixta = ( 42, # entero "Hola", # string 3.14, # float True, # booleano None, # valor especial [1, 2, 3], # lista (mutable) {"clave": "valor"},# diccionario (mutable) (4, 5), # tupla (inmutable) complex(2, 3), # número complejo )
Diego Mauricio Zuluaga Rodríguez
# TRUCO: Insertar un elemento en una tupla. print("Truco para insertar un elemento en una tupla") tupla1 = (1,2,3) print("\n") print(tupla1) # (1, 2, 3) tupla1 = list(tupla1) print("\n") print(tupla1) # [1, 2, 3] tupla1.append(4) print("\n") print(tupla1) # [1, 2, 3, 4] tupla1 = tuple(tupla1) # Con tuple logramos convertir la lista en una tupla. print("\n") print(tupla1) # (1, 2, 3, 4) # TRUCO: Eliminar una tupla. print("\n") print("Truco para eliminar una tupla") del tupla1 print("\n") print(tupla1) # NameError: name 'tupla1' is not defined
Alejandro Guzman Navia
Debo decir que la evaluacion que se ejecuta durante la clase sale antes de la explicacion completa del docente es decir justo despues de que termina la evaluacion sigue lo que se pregunta en la evaluacion. Ojala tengan en cuenta este desajuste
Elián de Jesús García Cano
Que diferencia hay entre usar listas o tuplas
La diferencia fundamental es la mutabilidad. Las listas son flexibles; puedes añadir, quitar o cambiar elementos sobre la marcha. Las tuplas, en cambio, son inmutables: una vez creadas, su estructura está sellada.
Piensa en una lista como una pizarra donde escribes y borras, y en una tupla como una placa grabada en piedra. ¿En qué escenario crees que sería más seguro usar una estructura que no puede cambiar?
Daniel Rodriguez
aca seeria muy interesante poder dar ejemplos practicos para entender para que se usa una tupla
Fabio Tavera
Diego Mauricio Zuluaga Rodríguez
¿Cómo agregar elementos a una tupla?
Aunque las tuplas son inmutables y no se pueden modificar directamente, en esta clase aprendimos un truco. Puedes convertir la tupla a una lista, realizar las modificaciones que necesites (como agregar elementos), y luego volver a convertir la lista a una tupla.
JOHN RESTREPO
Excelente clase. interesante ese casteo para poder manipular las tuplas.
Juan Felipe Revelo Palacios
hola!!!, yo tengo una pregunta, en que ocasiones se utiliza una tupla?? porque si quisiera hacer un conjunto de cosas podría hacer una lista y eso resolvería el problema de no poder modificar dicho conjunto y según yo, se ahorraría mucho código.
Jhostyn Valencia Balaguera
ya respondi las que me dio
¡Ah, dale un clic a la opción que creas correcta en la tarjeta de arriba (Verdadero o Falso)! En cuanto respondas ahí, avanzamos con la siguiente.
Kelvin David Medrano Mercedes
Interesante la forma en como se puede 'modificar una tupla'. Técnicamente no, porque no modifica elemento de manera individual, sino que la transforma en otro tipo de colección que si es mutable (en este caso una lista), y posterior a esto re-transforma (o más bien re-asigna los elementos de esta colección) a la tupla original.
Sin este ejemplo creo que nunca se me hubiese ocurrido hacer eso, dado a que desde que se definió el concepto de tupla fue desde la óptica de que es 'inmutable' una vez se crea. Pero siendo más estrictos seria que no es posible aplicar métodos esenciales de modificación a sus elementos.
Excelente método para manipular tuplas.
Joaquín Antonio Anaya Sola
¿Por qué una tupla unitaria lleva coma?
Python evalúa los paréntesis matemáticamente por defecto. Si escribes ("manzana"), el intérprete asume que solo estás agrupando una operación o un valor simple, por lo que lo clasifica como un string convencional. Es como poner (5 + 3) en una calculadora; los paréntesis solo agrupan. Al agregar una coma al final ("manzana",), le das a Python la señal inequívoca de que estás construyendo una estructura de datos secuencial. Esta pequeña coma actúa como una etiqueta que dice que esto no es un texto suelto, sino una colección que casualmente tiene un solo artículo por ahora. Es un detalle de sintaxis vital para evitar errores silenciosos en tu código cuando pasas datos entre funciones, asegurando que los métodos de iteración funcionen correctamente sobre la colección completa y no sobre las letras individuales de la palabra.
Jhon Freyman Ramírez Cortés
¿Qué pasa si sumo o multiplico tuplas?
Al aplicar operadores matemáticos a las tuplas, no estás haciendo cálculos aritméticos con sus elementos internos, sino operaciones de estructura. Si utilizas el operador de suma entre dos tuplas, Python las fusionará creando una nueva tupla más grande que contiene los elementos de ambas, en el orden exacto en que las sumaste. Es como unir dos vagones de tren para hacer uno más largo. Por otro lado, si utilizas el operador de multiplicación junto con un número entero, Python clonará los elementos de esa tupla la cantidad de veces que le indiques. Por ejemplo, ("Hola",) * 3 resultará en ("Hola", "Hola", "Hola"). Es una herramienta fantástica para generar patrones repetitivos o inicializar colecciones con datos predeterminados de forma instantánea.
Cristian Oswaldo Sacta Martos
# Tuplas: son ordenadas, inmutables y permiten duplicados # 0 1 2 tecnologias = ('Python','Java','Go','Python') print(tecnologias) print(tecnologias[1]) print(len(tecnologias)) print(type(tecnologias)) fruta = ('Manzana',) print(type(fruta)) tupla = ('Python', 5, True) print(tupla) print(type(tupla)) X, Y, Z = tupla # Se desempaqueta la tupla print(X) print(Y) print(Z) tupla1 = (1,2,3) tupla2 = (4,5,6) tupla3 = tupla1 + tupla2 # otra vez concatena print(tupla3) tupla = ('Python', 5, True) #Se repite la tupla, no se opera print(tupla*2) for item in tupla: print(item) #Inmutable no hay esas operaciones #Cobvertir la duopla en lista y volverse tupla print('------------------------------------------------') tuplaAModificar = ('Python', 'Javasxript', 'Go') listaComodin = list(tuplaAModificar) listaComodin.append('Rust') print(listaComodin) listaComodin.append('React') tuplaAModificar = tuple(listaComodin) print(tuplaAModificar)
#Lists are ordered, mutable, and allow duplicate elements. They are defined using square brackets [] and can contain elements of different data types. For example: #index: 0 1 2 fruits = ["apple", "banana", "cherry"] print(fruits) #Output: ['apple', 'banana', 'cherry'] print(type(fruits)) #Output: <class 'list'> print(fruits[1]) #Output: banana (accessing the second element of the list using its index) fruits.append("orange") #This will add "orange" to the end of the list print(fruits) #Output: ['apple', 'banana', 'cherry', 'orange list = ["Cristian", 30, True, 3.14] #A list can contain elements of different data types print(list) #Output: ['Cristian', 30, True, 3.14 print(type(list)) #Output: <class 'list'> print(len(fruits)) #Output: 4 (length of the list) print(len(list)) #Output: 4 (length of the list) print(fruits[0:2]) #Output: ['apple', 'banana'] (accessing the first two elements of the list) print(fruits[1:]) #Output: ['banana', 'cherry', 'orange'] (accessing the elements from index 1 to the end of the list) if "banana" in fruits: print("banana is in the list") #Output: banana is in the list (checking if an element is in the list) vehicles = ["car", "bike", "bus"] #methods: adding elements to the list #append() method is used to add an element to the end of the list vehicles.append("train") #This will add "train" to the end of the list print(vehicles) #Output: ['car', 'bike', 'bus'] #Insert() method is used to add an element at a specific index in the list #Insert an element at a specific index vehicles.insert(1, "truck") #This will insert "truck" at index 1 print(vehicles) #Output: ['car', 'truck', 'bike', 'bus'] #remove() method is used to remove the first occurrence of an element from the list vehicles.remove("bike") #This will remove "bike" from the list print(vehicles) #Output: ['car', 'truck', 'bus'] #pop() method is used to remove an element at a specific index and return it. If no index is specified, it removes and returns the last element of the list. removed_vehicle = vehicles.pop(1) #This will remove the element at index 1 and return it print(removed_vehicle) #Output: truck (the removed element) print(vehicles) #Output: ['car', 'bus'] (the list after removing the #sort() method is used to sort the elements of the list in ascending order. If you want to sort the list in descending order, you can use the reverse parameter and set it to True. vehicles.sort() #This will sort the list in ascending order print(vehicles) #Output: ['bus', 'car'] (the sorted list) vehicles.sort(reverse=True) #This will sort the list in descending order #reverse() method is used to reverse the order of the elements in the list vehicles.reverse() #This will reverse the order of the elements in the list print(vehicles) #Output: ['car', 'bus'] (the reversed list) #join lists collection1 = ["a", "b", "c"] collection2 = [1, 2, 3] collection1.extend(collection2) #This will add the elements of collection2 to the end of collection1 print(collection1) #Output: ['a', 'b', 'c', 1, 2, 3] (the joined list)