Platzi
Platzi

Suscríbete a Expert y aprende de tecnología al mejor precio anual.

Antes: $249
$209
Currency
Antes: $249
Ahorras: $40
COMIENZA AHORA
Termina en: 6D : 15H : 47M : 24S

No tienes acceso a esta clase

Para ver esta clase necesitas una suscripción a Platzi

Curso Básico de Python

Curso Básico de Python

Facundo García Martoni

Facundo García Martoni

Entendiendo cómo funcionan las tuplas

29/32

No había quedado claro la diferencia entre listas y tuplas y cuando usar cada una hasta ahora, gracias.

Para los que no lo sabían, los strings (cadenas de caracteres) al igual que las tuplas, también son considerados por python como inmutables.

La única manera de modificar el contenido de una variable de tipo string, es reasignando completamente su valor. No es posible realizar cambios individuales en un índice particular.

Hay ciertas maneras de cambiarles los valores a una tupla, un ejemplo es este:

x = ("apple", "banana", "cherry")
y = list(x)
y[1] = "kiwi"
x = tuple(y)

print(x)

Funciones que aplican a tuplas:

  • len
  • max
  • min
  • sum
  • any
  • all
  • sorted

Métodos que aplican a tuplas:

  • index
  • count

Tuplas → Conjunto inmutable de valores ordenados

  • eficientes
    .
    Listas → Conjunto dinamico de valores ordenados
  • versatiles
    .
    (ノ◕ヮ◕)ノ*:・゚✧

En Python, una tupla es un conjunto ordenado e inmutable de elementos del mismo o diferente tipo. Las tuplas se representan escribiendo los elementos entre paréntesis y separados por comas. Una tupla puede no contener ningún elemento, es decir, ser una tupla vacía.

Resumen de las tuplas

#declarar tupla
mi_tupla = ()
mi_tupla = (1,2,3)

#generar una tupla de 1 solo valor (Obligatorio la ,)
mi_tupla = (1,)

#acceder a un indice de la tupla
mi_tupla = (1,2,3)
mi_tupla[0] #1
mi_tupla[1] #2
mi_tupla[2] #3

#reasignar una tupla
mi_tupla = (1,2,3)
mi_otra_tupla = (4,5,6)
mi_tupla =+ mi_otra_tupla

#metodos de las tuplas
mi_tupla = (1,1,1,2,2,3)
mi_tupla.count(1) #3	el numero 1 aparece 3 veces en la tupla
mi_tupla.index(3) #5	indice de la primera instancia donde se encuentra un elemento
mi_tupla.index(1) #0
mi_tupla.index(2) #3

Un recurso para reforzar un poco el tema 😄
python-tuples-vs-lists.jpg

Nota importante de la clase que nos comparte el profesor:

La estructura de datos más rápida dentro del lenguaje Python es la tupla, por su condición de ser estática (o inmutable). Por lo anterior, si se construyen un FOR LOOP con un tupla, y otro con una lista, ambos con la misma cantidad de elementos; la ejecución más rápida se da en caso de la tupla.

📦 Las tuplas y las listas son similares pero no iguales. Difieren en su comportamiento:

  • Dinámico: Se puede agregar elementos.
>>> elements = [1,"z", 2.4, False]
>>> elements.append(True)
  • Estático: No se puede agregar elementos.
>>> elements = (1,"z", 2.4, False)

Al concepto de tupla y lista le veo una similitud a char y varchar de MySQL

  • Tupla y char = Permiten una cantidad fija de elementos dentro y no se pueden modificar luego siendo asi de tipo inmutables.
  • Lista y varchar = Permiten agregar la cantidad de elementos que se quiera, logrando ser mutables.

para poder hacer cambios en una tupla, se puede hacer así:

  1. convertirmos la tupla en una lista
  2. agregamos o quitamos el elemento
  3. convertirmos la lista en una tupla
fruits = ("apple", "pear", "orange", "peach")

fruitToList = list(fruits)
fruitToList[0] = "berry"

fruits = tuple(fruitToList)

print(fruits)
print(type(fruits))

Tuplas: Son un tipo de objeto estatico dentro de python a diferencia de las listas que son un objeto dinamico, es decir son un tipo de dato que su valor no va a cambiar, al igual que cuando creamos una variable constante. Y al momento de realizar una iteracion en el codigo del proyecto tendremos mejores tiempo de cargas utilizando tuplas en vez de listas:

tupla = (1, 2 ,3 ,4 ,5)

–> A diferencia de las listas las tuplas se encierran en ().

IMPORTANTE Un objeto inmutable es un objeto que no puede cambiar.

Listas

Sintaxis Descripción
[] Guardar diferentes tipos de variables
var_obj.append(elem) Agregar el valor al final de la lista
var_obj.pop(index) Eliminar el valor indicado de la lista
var_obj + var_obj2 Combinar listas
var_obj * n Nos repite la lista “n” veces
>>> numeros = [1,2,3,4,5]
>>> numeros
=> [1, 2, 3, 4, 5]
>>> objetos = [1,2.2,True,'Mau']
>>> objetos
=> [1, 2.2, True, 'Mau']
>>> objetos = [1,2.2,True,'Mau']
>>> objetos.append('Hello')
>>> objetos
=> [1, 2.2, True, 'Mau', 'Hello']
>>> list1 = [1,2,3,4,5]
>>> list2 = ['mau', 'angie', 'other', 100]
>>> list1 + list2
=> [1, 2, 3, 4, 5, 'mau', 'angie', 'other', 100]
>>> list1 = [1,2,3,4,5]
>>> list1 * 5
=> [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

Tuplas

Son listas pero estáticas, esto quiere decir que NO podemos agregar/eliminar/modificar valores, pero SI puedo recorrer la lista (inmutables)

>>> mi_tupla = (1,2,3,4,5)
>>> mi_tupla[1]
2
```

```python
# No puedo agregar/eliminar o modificar los valores
>>> mi_tupla = (1,2,3,4,5)
>>> mi_tupla[1] = 100
=> Traceback (most recent call last):
=>   File "<stdin>", line 1, in <module>
=> TypeError: 'tuple' object does not support item assignment
>>> mi_tupla[1].append(200)
=> Traceback (most recent call last):
=>   File "<stdin>", line 1, in <module>
=> AttributeError: 'int' object has no attribute 'append'
>>> mi_tupla[1].pop(1)
=> Traceback (most recent call last):
=>   File "<stdin>", line 1, in <module>
=> AttributeError: 'int' object has no attribute 'pop'

EN PYTHON LAS LISTAS NO ES NECESARIO QUE LA PONGAS ENTRE “[ ]” python lo detecta y asume que es una lista pruebenlo…

Las tuplas a diferencia de las lista son INMUTABLES (No se pueden modificar, agregar o quitar elementos).

my_tuple = () >>>> Tupla vacía

my_tuple = (1, ‘dos’, True) >>>>> Tupla mixta

my_tuple = (1,) >>> tupla con valor unitario (FUNDAMENTAL LA COMA!!!)

my_other_tuple = (2,3,4)

my_tuple += my_other_tuple >>> (1,2,3,4)

<h1>desenpaquetar</h1>

x,y,z = my_tuple >>> x = 2, y = 3, z= 4 “”"

Para complementar, les comparto el siguiente enlace:

El Libro de Python

Interesante la comparación entre listas y tuplas para entender mejor el concepto

Tupla = inmutable, no se pueden modificar
Lista = dinámicas, las puedes modificar

Mis apuntes:

Operación con listas:
suma_lista = nombre_lista + nombre_lista2
multi_lista = nombre_lista*3

Tuplas: tipo de objeto especial inmutabley ordenado. NO se puede agregar o eliminar elementos de una tupla. Estructura de datos que se muestra de forma rapida.
sintaxis: se representan escribiendo los elementos entre paréntesis y separados por comas.

tupla = (var1,var2,var3, ... , varn)

recorrer una tupla con ciclo for

for var in tupla:
    print(tupla)

slice a tupla:

tupla[<indice>:<indice2>] : muestra los elementos de la tupla desde <indice> hasta el valor anterior a <indice2>. El conteo de <indice> puede iniciar en 0, siendo el inicio de la lista.

tupla[:<indice>] : muestra los elementos de la tupla desde el inicio hasta el valor anterior a <indice>.

tupla[<indice>:<indice2>:<# pasos>] : muestra desde <indice> hasta el valor anterior a <indice2> con salteo de <# pasos>.

tupla[:] : indica mostrar todos los elementos de la tupla, desde inicio hasta final.

tupla[::- <indice>] : mostrara todos los elementos de la tupla, pero el - <indice> indica mostrar desde el ultimo elemento hasta inicio de esta. El conteo puede iniciar en -1, siendo el ultimo elemento de la tupla.

tupla[<indice>:- <indice2>] : muestra los elementos de la tupla desde el <indice> hasta el valor anterior a - <indice2>.

tupla[<indice>:<indice2>:- <# pasos>] : muestra los elementos de la tupla desde <indice> hasta el valor anterior a <indice2> con salteo de - <# pasos> desde el final hasta inicio de la tupla.    

inmutable: string, tupla
mutable: lista
dir(variable) : muestra las propiedades o métodos disponibles de la variable.

mi_tupla = mi_tupla * 5
mi_tupla
(1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5)

de esta manera si se “agregan” ???

Es la primera vez que escucho el concepto de tupla. Sin embargo, de la manera en como explica el profesor me quedo muy claro.

Oh, recuerdo que antes había escuchado ese término y no entendía la diferencia entre tuplas y listas c:

27. Tuplas.png

tuplas mayor velocidad, pero menos dinamismo

Si alguien quiere borrar la terminal sin la necesidad de salirte con exit(), puedes usar lo siguiente:

import os
os.system('cls')

Las tuplas son elementos estáticos, es decir, una vez creado no pueden ser modificados. La ventaja de las tuplas es que cuando vayan a ser utilizadas en el código serán mucho más eficientes que las listas y el programa podrá correr más rapido.

Hola les comento las diferentes formas de crear tuplas:

  • Para crear una tupla vacía, usa paréntesis () o el constructor de la clase tuple() sin parámetros.
  • Para crear una tupla con un único elemento: elem, o (elem, ). Observa que siempre se añade una coma.
  • Para crear una tupla de varios elementos, sepáralos con comas: a, b, c o (a, b, c).
  • Las tuplas también se pueden crear usando el constructor de la clase, tuple(iterable). En este caso, el constructor crea una tupla cuyos elementos son los mismos y están en el mismo orden que los ítems del iterable. El objeto iterable puede ser una secuencia, un contenedor que soporte la iteración o un objeto iterador.

También podemos reasignarle valores:

mi_tupla
#(1, 2, 3, 4)
mi_tupla = mi_tupla + (5,6,7)
#(1, 2, 3, 4, 5, 6, 7)

Ejemplo de una lista convertida en tupla:

lista=[1,2,3.4,“Hola”, True]
tupla=tuple(lista)
print(tupla)

(1,2,3.4,“Hola”, True)

Muy buena explicación!

Excelente profesor Facundo

APUNTE:

#Entendiendo cómo funcionan las tuplas

numeros = [1, 2, 3, 4, 5]
numeros
[1, 2, 3, 4, 5]
numeros.append('Hola')
numeros
[1, 2, 3, 4, 5, 'Hola']
numeros.pop(5)
'Hola'
numeros
[1, 2, 3, 4, 5]
'Hola' + ' ' + 'Mundo'
'Hola Mundo'
numeros2 = [6, 7, 8, 9]
numeros
[1, 2, 3, 4, 5]
numeros2
[6, 7, 8, 9]
lista_final = numeros + numeros2
lista_final
[1, 2, 3, 4, 5, 6, 7, 8, 9]
numeros * 5
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
mi_tupla = (1, 2, 3, 4, 5)
mi_tupla
(1, 2, 3, 4, 5)
#Aqui viene la diferencia con las lista, las tuplas:
mi_tupla.append(5)
#Error, 
# ya que la tuplas son un tipo de objeto estatico
# las listas son un tipo de objeto dinamico a 
# las cuales le podemos agregar y borrar 
# elementos a la tuplas no. Entonces cual es 
# la ventaja de usar tuplas y no lista, cuando 
# hacemos iteraciones(recoremos una lista con 
# un ciclo for podemos tener un ejecución más 
# rápida)
mi_tupla.pop(2)
#Error
# Pero si hacemos un for
for numero in mi_tupla:
...    print(numero)
...
1
2
3
4
5
# La diferencias con la listas es que el ciclo
# for funciona de una mejor manera con las tuplas.
# Las tuplas son la estructura más rapida que
# nosotros tenemos disponible dentro de python,
#  la diferencia con las listas es que las
#  podemos  modificar, las tuplas son inmutaples
# otro elemento inmutaples son los strings

martes, 20 de julio de 2021
23:26

¿Qué ES UNA TUPLA?
Son conjuntpo imutable de valores ordenados
-se le puede aplicar la siguientes funciones
Len
Max
Min
Sum
Any
All
sorted
¿Qué son las listas ?
Conjunto dinamico de valores ordenados

Como se declara una tupla?
Variable=(elemto1,elemento2,…….;elemento n)

La principal diferencia entre las listas y las tuplas de Python, y el motivo por el que muchos usuarios solamente utilizar listas, es que las listas son mutables mientras que las tuplas no lo son.

ósea le podemos cambiar el contenido a las listas pero a las tuplas no.

Excelente vídeo.
La diferencia en como escribir en el editor tuplas y listas es que las primeras van en paréntesis y las últimas van en corchetes. Las primeras son estáticas, las últimas son dinámicas. Las primeras no se pueden cambiar, a las últimas si se les puede eliminar y/o agregar datos.

Muy ineteresante la diferencia entre tupla y listas, en varios años de universidad y eso nunca me lo habian explicado de una manera tan simple

buen video

Tuplas

Son como las listas, pero estáticas

  • Permiten tener una ejecución más rápida en bucles for para recorrerlas
  • Consumen mucha menos memoria
  • Es la estructura de datos más rápida en Python
  • Es inmutable, es decir no se le pueden agregar ni quitar elementos

Excelente aporte para conocer la diferencia entre Listas y Tuplas. Poco a poco voy entendiendo la estructura de Python.

Buena clase!

supongo entonces que las variabales que almacenan datos son igual al tuplas, porque no encontre ninguna diferencia entre ellas en la practica, mas bien entre variables y listas, si hay diferencia.

Excellent class! 💪🏻💙💛

Las tuplas también le podemos hacer slicing

>>> tupla = (1, 2, 3, 4, 5)
>> tupla[::-1]
> (5, 4, 3, 2, 1)

#tuplas: listas unidas
numeros = [1,2,3,4]

numeros2= [4,5,6,7]
listafinal = numeros + numeros2
listafinal
[1, 2, 3, 4, 4, 5, 6, 7]

las listas son utiles por que son dinamicas

las listas implican mucha memoria eso se soluciona con tuplas

recorrer for una lista es mas rapida con una tupla

es rapida por que no es dinamica: INMUTABLE

mi_tupla = (1,2,3,4,5)
mi_tupla.append(5) #genera error
for numero in mi_tupla:
print (numero)

Me ha sorprendido el principio de esta clase y ver lo tan flexible o dinamico que llega a ser Python, aunque hacer esto en JS tambien es sencillo con el spread operator pero eso de multiplicar un array o un string X veces si me sorprendio 😂

.

aaah no, ya no. Ya llegue a la parte donde dice que eso es ineficiente y en su lugar se usan las tuplas xd

Excelente explicación, Gracias, muy clara la diferencia.

Las listas son variables (mutable).
Las tuplas son constantes (inmutable).

Super útil esta aclaración ❤️

La genialidad de este sujeto para explicar, es impresionante!

increible la claridad de este hombre. muchas felicitaciones.

Lista: Dinamico []
Tupla: Estatico ()

Tengo una pregunta: si quiero comparar una letra con cada uno de los valores guardados en una tupla, cómo le hago?

tupla.png
Las listas son dinámicas se le pueden agregar elementos y eliminar eso hace que python el lenguaje por debajo necesite mas memoria para tener viva las listas
el tipo de dato nos ahorra el problema son: Las tuplas, son estáticas y sus elementos se ponen entre ()
no se les puede agregar ni borrar elementos
la ventaja de usar tublas si recorremos con el ciclo for es mas rápido a diferencia de las listas
Las tuplas son inmutables: ese elemento no puede cambiar al igual que una string

Apun-Tuplas.png

Las tuplas son en python, un tipo de lista, como los range.

En esta página se ve un poco más a detalle lo relacionado a las tuplas:

https://uniwebsidad.com/libros/algoritmos-python/capitulo-7/tuplas

Tambien se pueden iterar ambos tipos de objetos, las listas y las tuplas, para que podamos accede a sus contenidos

Interesante diferenciación entre las listas y las tuplas y como todo gira en torno a optimizar el uso de memoria y conocer si nuestros datos son dinámicos o no.

listas == dinámicos, se puede agregar y quitar elementos, mutable
tuplas == estáticos no se pueden agregar y quitar elementos, inmutable , mas rápidas

Que bueno poder diferenciar las listas de tuplas, así uno puede elegir lo que le convenga al momento de hacer código y que ese código sea más eficaz.

La diferencia entre una tupla y una lista (Array en otros lenguajes) es que la tupla es inmutable y la lista es mutable. Cabe mencionar que con las listas puedes hacer operaciones y tiene métodos para manipular el contenido de la misma.

Tambien podemos desempacar las tupluas de la siguente manera:

>>> numeros = (1,2,3)
>>> x,y,z = numeros
>>> x
1
>>> y
2
>>> z
3
>>> 

Saludos.

Muy buena explicación

Las tuplas son utiles cuando queremos escribir datos que no puedan ser modificados luego, durante la ejecucion del programa.

Es exctamente igual entre la diferencia entre usar variables o constantes. Si queremos manipular los datos, usamos variables (o listas de variables),

si la buena ejecucion del codigo DEPENDE de que esos valores no puedan ser modificado, se utilizaran tuplas o constantes

Entonces, dada la definición de inmutabilidad también se puede hacer una analogía entre constantes y variables. Donde las constantes son inmutables a comparación de las variables que pueden ser modificadas.

excelente clase, es fácil de entender la diferencia entre tuplas y listas.

Que buena explicacion sobre que son las tuplas

Interesante el como trabajan las tuplas.

Wow por fin sé que es una tupla. Quedó clarísimo!

Por fin entiendo el para qué de las tuplas, buenísimo.

Información importante: Las listas son grupos de elementos dinámicos, es decir podemos agregar o eliminar elementos dentro de las listas. Las duplas son grupos de elementos estáticos, es decir, NO podemos usar los comandos de agregar o quitar elementos dentro de las tuplas.

Las tuplas usan mucho menos memoria, por eso son mas eficaces y rápidas. No son tan versátiles como las listas.

seria como los vecotes en java?

Inmutable

Se necesita mas memoria para operar con listas que con tuplas.

Un pequeño ejemplo. Ojalá les sirva de ayuda.

numeros = [1,2,3,4,5]
# Almacenamos el # 5 en la variable 'cinco' y lo eliminamos de la lista 'numeros'
cinco = numeros.pop(-1)  
# Almacenamos el # 4 en la variable 'cuatro' y lo eliminamos de la lista 'numeros'
cuatro = numeros.pop(-1) 
print(type(numeros), numeros)
# Añadimos nuestro numero numero 4, que guardamos en la variable 'cuatro'
numeros.append(cuatro) 
print(type(numeros),numeros)
# Añadimos nuestro numero numero 5, que guardamos en la variable 'cinco'
numeros.append(cinco) 
print(type(numeros), numeros)
# Creamos una tupla de nuestra lista
tupla_de_numeros = tuple(numeros)
print(type(tupla_de_numeros), tupla_de_numeros)

No entendí por qué las strings son inmutables:( Probe esto y cambio ¿Alguién me explica porfi?duda.png

Así como las variables tienen su versión inmutable. Las constantes.
Las listas tienen su versión inmutable. Las tuplas.

Las Listas se usan con corchetes y las Tuplas con paréntesis.

tupla: es un conjunto ordenado e inmutable de elementos del mismo o diferente tipo.
lista: es una estructura de datos formada por una secuencia ordenada de objetos. Los elementos de una lista pueden accederse mediante su índice, siendo 0 el índice del primer elemento

Lista es dináca y puede ser cambiante. La tupla es estática e inmutable.

En resumen: las listas (mejor conocidas como arrays) son dinamicas, ya que puedes modificar su contenido ya sea agregando o eliminando datos. Las tuplas son como las variables constantes, su contenido nunca cambia.

Se recomienda usar tuplas, así el lenguaje no requerirá de tanta memoria como lo hace con las listas.

entonces si yo necesito cambiar los valores de una dupla ya creada la única manera en la cual yo lo puedo hacer es reasignado de nuevo todos los valores a esa variable.

"La inmutabilidad, es simplemente la ausencia de métodos de mutación"

Una lista contiene elementos los cuales pueden mutar o cambiar mientras que una tupla también contiene elementos los cuales no podrán mutar, es decir, no pueden cambiar.

tupla inmutabl; no se puede editar.
lista mutable; se puede editar.

La diferencia entre lista y tupla es que a la lista se le puede quitar o agregar elementos, eso la hace mutable mientras que la tupla no se le pueden quitar ni agregar elementos, pero al momento de realizar procesos, es mas eficaz que una lista.

La lista se declara así:
lista = [variable, variable2, variable3, … n]
Y la tupla de la siguiente manera:
tupla = (variable, variable2, variable3 … n)

Muy buenos ejemplos.!

Aportando a la clase, encontré un recurso donde explican más a fondo sobre la mutabilidad y la inmutabilidad en python, espero les sirva

http://elclubdelautodidacta.es/wp/2012/09/python-el-sagrado-misterio-de-la-inmutabilidad/

Tuplas: cuando usamos tuplas, python utiliza menos recursos para mantenerlas vivas en nuestro programa.
A diferencia de cuando usamos listas, ya que las listas al ser mutables python utiliza más recursos para poder estarlas modificando.


Las tuplas son muy similares al concepto de las listas. En ambas se pueden alojar datos del mismo o diferente tipo, pero en el caso de las tuplas estas no se pueden modificar (ósea, no se pueden eliminar ni agregar elementos), por lo que se dice qué las tuplas son objetos inmutables. En el caso de las listas, como ya se vio, hay métodos que nos permiten modificarlas, pero esto tiene un problema, y es que necesita un mayor consumo de parte de la computadora para poder “mantener” estas listas, por lo que las tuplas son mucho más rápidas. Por último, hay otra diferencia, y es que en vez de escribir corchetes entre los elementos como en las listas, se escriben paréntesis. Mira este ejemplo:

>>> objetos = (1, 2, 3, 4, True)
>>> objetos
(1, 2, 3, 4, True)```

Lo que no tengo claro es cuando podemos usar TUPLAS y cuando usar LISTAS: recuerdo clases atrás, usamos un ejemplo de colocar hasta un cierto numero, el profesor utilizo hasta el 100, y lo asigno como LIMITE(en mayúscula)asignando como inmutable, en este caso ya estaría usando una TUPLA, seria asi o ando lejos de lo explicado? 😃

Tuplas
Las tuplas son un tipo de dato que se parecen a las listas, la diferencia es que las listas son dinámicas y las tuplas son estáticos, es decir, son inmutables no se puede modificar sus elementos.

Tuplas

Las tuplas se declaran con paréntesis, recuerda que no puedes editar los datos de una tupla después de que la has creado. Son más rápidas e inmutables.

 >>> T = (22, True, "una tupla", (1, 2)) 
 >>> T[0] 
 22

Concepto crítico: mutabilidad, inmutabilidad y referencia en Python:
A efectos prácticos, es como si se tratara de un puntero (empleando conceptos de otros lenguajes) a ese objeto,
Es decir, no contiene su valor, sino una referencia a él.

>>> x = ('a', 'b', 'c')
>>> id(x)
140657627208800
>>> y = list(x)
>>> id(y)
140657627169224
>>> y[1]='k'
>>> x = tuple(y)
>>> id(x)
140657627208872
>>> x
('a', 'k', 'c')
>>> 

Las listas son dinámicas, se le pueden agregar elementos, por lo que python, el lenguaje por debajo necesite más memoria para mantener vivas a estas mismas listas mientras se trabajan con ellas, las tuplas, como no pueden cambiarse, es decir son inmutables, se procesan más rápido.

Desde hace tiempo me había quedad la duda, pero gracias al profe ya me queda claro, gracias

¡Muy bueno! Los lenguajes de bajo nivel necesitan que el tamaño de los arreglos incluso se definan con anterioridad. Esto para ahorrar memoria. Python dispone de las tuplas pero aun así continúa siendo muy dinámico 😎

No había quedado claro la diferencia entre listas y tuplas y cuando usar cada una hasta ahora, gracias.

Para los que no lo sabían, los strings (cadenas de caracteres) al igual que las tuplas, también son considerados por python como inmutables.

La única manera de modificar el contenido de una variable de tipo string, es reasignando completamente su valor. No es posible realizar cambios individuales en un índice particular.

Hay ciertas maneras de cambiarles los valores a una tupla, un ejemplo es este:

x = ("apple", "banana", "cherry")
y = list(x)
y[1] = "kiwi"
x = tuple(y)

print(x)

Funciones que aplican a tuplas:

  • len
  • max
  • min
  • sum
  • any
  • all
  • sorted

Métodos que aplican a tuplas:

  • index
  • count

Tuplas → Conjunto inmutable de valores ordenados

  • eficientes
    .
    Listas → Conjunto dinamico de valores ordenados
  • versatiles
    .
    (ノ◕ヮ◕)ノ*:・゚✧

En Python, una tupla es un conjunto ordenado e inmutable de elementos del mismo o diferente tipo. Las tuplas se representan escribiendo los elementos entre paréntesis y separados por comas. Una tupla puede no contener ningún elemento, es decir, ser una tupla vacía.

Resumen de las tuplas

#declarar tupla
mi_tupla = ()
mi_tupla = (1,2,3)

#generar una tupla de 1 solo valor (Obligatorio la ,)
mi_tupla = (1,)

#acceder a un indice de la tupla
mi_tupla = (1,2,3)
mi_tupla[0] #1
mi_tupla[1] #2
mi_tupla[2] #3

#reasignar una tupla
mi_tupla = (1,2,3)
mi_otra_tupla = (4,5,6)
mi_tupla =+ mi_otra_tupla

#metodos de las tuplas
mi_tupla = (1,1,1,2,2,3)
mi_tupla.count(1) #3	el numero 1 aparece 3 veces en la tupla
mi_tupla.index(3) #5	indice de la primera instancia donde se encuentra un elemento
mi_tupla.index(1) #0
mi_tupla.index(2) #3

Un recurso para reforzar un poco el tema 😄
python-tuples-vs-lists.jpg

Nota importante de la clase que nos comparte el profesor:

La estructura de datos más rápida dentro del lenguaje Python es la tupla, por su condición de ser estática (o inmutable). Por lo anterior, si se construyen un FOR LOOP con un tupla, y otro con una lista, ambos con la misma cantidad de elementos; la ejecución más rápida se da en caso de la tupla.

📦 Las tuplas y las listas son similares pero no iguales. Difieren en su comportamiento:

  • Dinámico: Se puede agregar elementos.
>>> elements = [1,"z", 2.4, False]
>>> elements.append(True)
  • Estático: No se puede agregar elementos.
>>> elements = (1,"z", 2.4, False)

Al concepto de tupla y lista le veo una similitud a char y varchar de MySQL

  • Tupla y char = Permiten una cantidad fija de elementos dentro y no se pueden modificar luego siendo asi de tipo inmutables.
  • Lista y varchar = Permiten agregar la cantidad de elementos que se quiera, logrando ser mutables.

para poder hacer cambios en una tupla, se puede hacer así:

  1. convertirmos la tupla en una lista
  2. agregamos o quitamos el elemento
  3. convertirmos la lista en una tupla
fruits = ("apple", "pear", "orange", "peach")

fruitToList = list(fruits)
fruitToList[0] = "berry"

fruits = tuple(fruitToList)

print(fruits)
print(type(fruits))

Tuplas: Son un tipo de objeto estatico dentro de python a diferencia de las listas que son un objeto dinamico, es decir son un tipo de dato que su valor no va a cambiar, al igual que cuando creamos una variable constante. Y al momento de realizar una iteracion en el codigo del proyecto tendremos mejores tiempo de cargas utilizando tuplas en vez de listas:

tupla = (1, 2 ,3 ,4 ,5)

–> A diferencia de las listas las tuplas se encierran en ().

IMPORTANTE Un objeto inmutable es un objeto que no puede cambiar.

Listas

Sintaxis Descripción
[] Guardar diferentes tipos de variables
var_obj.append(elem) Agregar el valor al final de la lista
var_obj.pop(index) Eliminar el valor indicado de la lista
var_obj + var_obj2 Combinar listas
var_obj * n Nos repite la lista “n” veces
>>> numeros = [1,2,3,4,5]
>>> numeros
=> [1, 2, 3, 4, 5]
>>> objetos = [1,2.2,True,'Mau']
>>> objetos
=> [1, 2.2, True, 'Mau']
>>> objetos = [1,2.2,True,'Mau']
>>> objetos.append('Hello')
>>> objetos
=> [1, 2.2, True, 'Mau', 'Hello']
>>> list1 = [1,2,3,4,5]
>>> list2 = ['mau', 'angie', 'other', 100]
>>> list1 + list2
=> [1, 2, 3, 4, 5, 'mau', 'angie', 'other', 100]
>>> list1 = [1,2,3,4,5]
>>> list1 * 5
=> [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

Tuplas

Son listas pero estáticas, esto quiere decir que NO podemos agregar/eliminar/modificar valores, pero SI puedo recorrer la lista (inmutables)

>>> mi_tupla = (1,2,3,4,5)
>>> mi_tupla[1]
2
```

```python
# No puedo agregar/eliminar o modificar los valores
>>> mi_tupla = (1,2,3,4,5)
>>> mi_tupla[1] = 100
=> Traceback (most recent call last):
=>   File "<stdin>", line 1, in <module>
=> TypeError: 'tuple' object does not support item assignment
>>> mi_tupla[1].append(200)
=> Traceback (most recent call last):
=>   File "<stdin>", line 1, in <module>
=> AttributeError: 'int' object has no attribute 'append'
>>> mi_tupla[1].pop(1)
=> Traceback (most recent call last):
=>   File "<stdin>", line 1, in <module>
=> AttributeError: 'int' object has no attribute 'pop'

EN PYTHON LAS LISTAS NO ES NECESARIO QUE LA PONGAS ENTRE “[ ]” python lo detecta y asume que es una lista pruebenlo…

Las tuplas a diferencia de las lista son INMUTABLES (No se pueden modificar, agregar o quitar elementos).

my_tuple = () >>>> Tupla vacía

my_tuple = (1, ‘dos’, True) >>>>> Tupla mixta

my_tuple = (1,) >>> tupla con valor unitario (FUNDAMENTAL LA COMA!!!)

my_other_tuple = (2,3,4)

my_tuple += my_other_tuple >>> (1,2,3,4)

<h1>desenpaquetar</h1>

x,y,z = my_tuple >>> x = 2, y = 3, z= 4 “”"

Para complementar, les comparto el siguiente enlace:

El Libro de Python

Interesante la comparación entre listas y tuplas para entender mejor el concepto

Tupla = inmutable, no se pueden modificar
Lista = dinámicas, las puedes modificar

Mis apuntes:

Operación con listas:
suma_lista = nombre_lista + nombre_lista2
multi_lista = nombre_lista*3

Tuplas: tipo de objeto especial inmutabley ordenado. NO se puede agregar o eliminar elementos de una tupla. Estructura de datos que se muestra de forma rapida.
sintaxis: se representan escribiendo los elementos entre paréntesis y separados por comas.

tupla = (var1,var2,var3, ... , varn)

recorrer una tupla con ciclo for

for var in tupla:
    print(tupla)

slice a tupla:

tupla[<indice>:<indice2>] : muestra los elementos de la tupla desde <indice> hasta el valor anterior a <indice2>. El conteo de <indice> puede iniciar en 0, siendo el inicio de la lista.

tupla[:<indice>] : muestra los elementos de la tupla desde el inicio hasta el valor anterior a <indice>.

tupla[<indice>:<indice2>:<# pasos>] : muestra desde <indice> hasta el valor anterior a <indice2> con salteo de <# pasos>.

tupla[:] : indica mostrar todos los elementos de la tupla, desde inicio hasta final.

tupla[::- <indice>] : mostrara todos los elementos de la tupla, pero el - <indice> indica mostrar desde el ultimo elemento hasta inicio de esta. El conteo puede iniciar en -1, siendo el ultimo elemento de la tupla.

tupla[<indice>:- <indice2>] : muestra los elementos de la tupla desde el <indice> hasta el valor anterior a - <indice2>.

tupla[<indice>:<indice2>:- <# pasos>] : muestra los elementos de la tupla desde <indice> hasta el valor anterior a <indice2> con salteo de - <# pasos> desde el final hasta inicio de la tupla.    

inmutable: string, tupla
mutable: lista
dir(variable) : muestra las propiedades o métodos disponibles de la variable.

mi_tupla = mi_tupla * 5
mi_tupla
(1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5)

de esta manera si se “agregan” ???

Es la primera vez que escucho el concepto de tupla. Sin embargo, de la manera en como explica el profesor me quedo muy claro.

Oh, recuerdo que antes había escuchado ese término y no entendía la diferencia entre tuplas y listas c:

27. Tuplas.png

tuplas mayor velocidad, pero menos dinamismo

Si alguien quiere borrar la terminal sin la necesidad de salirte con exit(), puedes usar lo siguiente:

import os
os.system('cls')

Las tuplas son elementos estáticos, es decir, una vez creado no pueden ser modificados. La ventaja de las tuplas es que cuando vayan a ser utilizadas en el código serán mucho más eficientes que las listas y el programa podrá correr más rapido.

Hola les comento las diferentes formas de crear tuplas:

  • Para crear una tupla vacía, usa paréntesis () o el constructor de la clase tuple() sin parámetros.
  • Para crear una tupla con un único elemento: elem, o (elem, ). Observa que siempre se añade una coma.
  • Para crear una tupla de varios elementos, sepáralos con comas: a, b, c o (a, b, c).
  • Las tuplas también se pueden crear usando el constructor de la clase, tuple(iterable). En este caso, el constructor crea una tupla cuyos elementos son los mismos y están en el mismo orden que los ítems del iterable. El objeto iterable puede ser una secuencia, un contenedor que soporte la iteración o un objeto iterador.

También podemos reasignarle valores:

mi_tupla
#(1, 2, 3, 4)
mi_tupla = mi_tupla + (5,6,7)
#(1, 2, 3, 4, 5, 6, 7)

Ejemplo de una lista convertida en tupla:

lista=[1,2,3.4,“Hola”, True]
tupla=tuple(lista)
print(tupla)

(1,2,3.4,“Hola”, True)

Muy buena explicación!

Excelente profesor Facundo

APUNTE:

#Entendiendo cómo funcionan las tuplas

numeros = [1, 2, 3, 4, 5]
numeros
[1, 2, 3, 4, 5]
numeros.append('Hola')
numeros
[1, 2, 3, 4, 5, 'Hola']
numeros.pop(5)
'Hola'
numeros
[1, 2, 3, 4, 5]
'Hola' + ' ' + 'Mundo'
'Hola Mundo'
numeros2 = [6, 7, 8, 9]
numeros
[1, 2, 3, 4, 5]
numeros2
[6, 7, 8, 9]
lista_final = numeros + numeros2
lista_final
[1, 2, 3, 4, 5, 6, 7, 8, 9]
numeros * 5
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
mi_tupla = (1, 2, 3, 4, 5)
mi_tupla
(1, 2, 3, 4, 5)
#Aqui viene la diferencia con las lista, las tuplas:
mi_tupla.append(5)
#Error, 
# ya que la tuplas son un tipo de objeto estatico
# las listas son un tipo de objeto dinamico a 
# las cuales le podemos agregar y borrar 
# elementos a la tuplas no. Entonces cual es 
# la ventaja de usar tuplas y no lista, cuando 
# hacemos iteraciones(recoremos una lista con 
# un ciclo for podemos tener un ejecución más 
# rápida)
mi_tupla.pop(2)
#Error
# Pero si hacemos un for
for numero in mi_tupla:
...    print(numero)
...
1
2
3
4
5
# La diferencias con la listas es que el ciclo
# for funciona de una mejor manera con las tuplas.
# Las tuplas son la estructura más rapida que
# nosotros tenemos disponible dentro de python,
#  la diferencia con las listas es que las
#  podemos  modificar, las tuplas son inmutaples
# otro elemento inmutaples son los strings

martes, 20 de julio de 2021
23:26

¿Qué ES UNA TUPLA?
Son conjuntpo imutable de valores ordenados
-se le puede aplicar la siguientes funciones
Len
Max
Min
Sum
Any
All
sorted
¿Qué son las listas ?
Conjunto dinamico de valores ordenados

Como se declara una tupla?
Variable=(elemto1,elemento2,…….;elemento n)

La principal diferencia entre las listas y las tuplas de Python, y el motivo por el que muchos usuarios solamente utilizar listas, es que las listas son mutables mientras que las tuplas no lo son.

ósea le podemos cambiar el contenido a las listas pero a las tuplas no.

Excelente vídeo.
La diferencia en como escribir en el editor tuplas y listas es que las primeras van en paréntesis y las últimas van en corchetes. Las primeras son estáticas, las últimas son dinámicas. Las primeras no se pueden cambiar, a las últimas si se les puede eliminar y/o agregar datos.

Muy ineteresante la diferencia entre tupla y listas, en varios años de universidad y eso nunca me lo habian explicado de una manera tan simple

buen video

Tuplas

Son como las listas, pero estáticas

  • Permiten tener una ejecución más rápida en bucles for para recorrerlas
  • Consumen mucha menos memoria
  • Es la estructura de datos más rápida en Python
  • Es inmutable, es decir no se le pueden agregar ni quitar elementos

Excelente aporte para conocer la diferencia entre Listas y Tuplas. Poco a poco voy entendiendo la estructura de Python.

Buena clase!

supongo entonces que las variabales que almacenan datos son igual al tuplas, porque no encontre ninguna diferencia entre ellas en la practica, mas bien entre variables y listas, si hay diferencia.

Excellent class! 💪🏻💙💛

Las tuplas también le podemos hacer slicing

>>> tupla = (1, 2, 3, 4, 5)
>> tupla[::-1]
> (5, 4, 3, 2, 1)

#tuplas: listas unidas
numeros = [1,2,3,4]

numeros2= [4,5,6,7]
listafinal = numeros + numeros2
listafinal
[1, 2, 3, 4, 4, 5, 6, 7]

las listas son utiles por que son dinamicas

las listas implican mucha memoria eso se soluciona con tuplas

recorrer for una lista es mas rapida con una tupla

es rapida por que no es dinamica: INMUTABLE

mi_tupla = (1,2,3,4,5)
mi_tupla.append(5) #genera error
for numero in mi_tupla:
print (numero)

Me ha sorprendido el principio de esta clase y ver lo tan flexible o dinamico que llega a ser Python, aunque hacer esto en JS tambien es sencillo con el spread operator pero eso de multiplicar un array o un string X veces si me sorprendio 😂

.

aaah no, ya no. Ya llegue a la parte donde dice que eso es ineficiente y en su lugar se usan las tuplas xd

Excelente explicación, Gracias, muy clara la diferencia.

Las listas son variables (mutable).
Las tuplas son constantes (inmutable).

Super útil esta aclaración ❤️

La genialidad de este sujeto para explicar, es impresionante!

increible la claridad de este hombre. muchas felicitaciones.

Lista: Dinamico []
Tupla: Estatico ()

Tengo una pregunta: si quiero comparar una letra con cada uno de los valores guardados en una tupla, cómo le hago?

tupla.png
Las listas son dinámicas se le pueden agregar elementos y eliminar eso hace que python el lenguaje por debajo necesite mas memoria para tener viva las listas
el tipo de dato nos ahorra el problema son: Las tuplas, son estáticas y sus elementos se ponen entre ()
no se les puede agregar ni borrar elementos
la ventaja de usar tublas si recorremos con el ciclo for es mas rápido a diferencia de las listas
Las tuplas son inmutables: ese elemento no puede cambiar al igual que una string

Apun-Tuplas.png

Las tuplas son en python, un tipo de lista, como los range.

En esta página se ve un poco más a detalle lo relacionado a las tuplas:

https://uniwebsidad.com/libros/algoritmos-python/capitulo-7/tuplas

Tambien se pueden iterar ambos tipos de objetos, las listas y las tuplas, para que podamos accede a sus contenidos

Interesante diferenciación entre las listas y las tuplas y como todo gira en torno a optimizar el uso de memoria y conocer si nuestros datos son dinámicos o no.

listas == dinámicos, se puede agregar y quitar elementos, mutable
tuplas == estáticos no se pueden agregar y quitar elementos, inmutable , mas rápidas

Que bueno poder diferenciar las listas de tuplas, así uno puede elegir lo que le convenga al momento de hacer código y que ese código sea más eficaz.

La diferencia entre una tupla y una lista (Array en otros lenguajes) es que la tupla es inmutable y la lista es mutable. Cabe mencionar que con las listas puedes hacer operaciones y tiene métodos para manipular el contenido de la misma.

Tambien podemos desempacar las tupluas de la siguente manera:

>>> numeros = (1,2,3)
>>> x,y,z = numeros
>>> x
1
>>> y
2
>>> z
3
>>> 

Saludos.

Muy buena explicación

Las tuplas son utiles cuando queremos escribir datos que no puedan ser modificados luego, durante la ejecucion del programa.

Es exctamente igual entre la diferencia entre usar variables o constantes. Si queremos manipular los datos, usamos variables (o listas de variables),

si la buena ejecucion del codigo DEPENDE de que esos valores no puedan ser modificado, se utilizaran tuplas o constantes

Entonces, dada la definición de inmutabilidad también se puede hacer una analogía entre constantes y variables. Donde las constantes son inmutables a comparación de las variables que pueden ser modificadas.

excelente clase, es fácil de entender la diferencia entre tuplas y listas.

Que buena explicacion sobre que son las tuplas

Interesante el como trabajan las tuplas.

Wow por fin sé que es una tupla. Quedó clarísimo!

Por fin entiendo el para qué de las tuplas, buenísimo.

Información importante: Las listas son grupos de elementos dinámicos, es decir podemos agregar o eliminar elementos dentro de las listas. Las duplas son grupos de elementos estáticos, es decir, NO podemos usar los comandos de agregar o quitar elementos dentro de las tuplas.

Las tuplas usan mucho menos memoria, por eso son mas eficaces y rápidas. No son tan versátiles como las listas.

seria como los vecotes en java?

Inmutable

Se necesita mas memoria para operar con listas que con tuplas.

Un pequeño ejemplo. Ojalá les sirva de ayuda.

numeros = [1,2,3,4,5]
# Almacenamos el # 5 en la variable 'cinco' y lo eliminamos de la lista 'numeros'
cinco = numeros.pop(-1)  
# Almacenamos el # 4 en la variable 'cuatro' y lo eliminamos de la lista 'numeros'
cuatro = numeros.pop(-1) 
print(type(numeros), numeros)
# Añadimos nuestro numero numero 4, que guardamos en la variable 'cuatro'
numeros.append(cuatro) 
print(type(numeros),numeros)
# Añadimos nuestro numero numero 5, que guardamos en la variable 'cinco'
numeros.append(cinco) 
print(type(numeros), numeros)
# Creamos una tupla de nuestra lista
tupla_de_numeros = tuple(numeros)
print(type(tupla_de_numeros), tupla_de_numeros)

No entendí por qué las strings son inmutables:( Probe esto y cambio ¿Alguién me explica porfi?duda.png

Así como las variables tienen su versión inmutable. Las constantes.
Las listas tienen su versión inmutable. Las tuplas.

Las Listas se usan con corchetes y las Tuplas con paréntesis.

tupla: es un conjunto ordenado e inmutable de elementos del mismo o diferente tipo.
lista: es una estructura de datos formada por una secuencia ordenada de objetos. Los elementos de una lista pueden accederse mediante su índice, siendo 0 el índice del primer elemento

Lista es dináca y puede ser cambiante. La tupla es estática e inmutable.

En resumen: las listas (mejor conocidas como arrays) son dinamicas, ya que puedes modificar su contenido ya sea agregando o eliminando datos. Las tuplas son como las variables constantes, su contenido nunca cambia.

Se recomienda usar tuplas, así el lenguaje no requerirá de tanta memoria como lo hace con las listas.

entonces si yo necesito cambiar los valores de una dupla ya creada la única manera en la cual yo lo puedo hacer es reasignado de nuevo todos los valores a esa variable.

"La inmutabilidad, es simplemente la ausencia de métodos de mutación"

Una lista contiene elementos los cuales pueden mutar o cambiar mientras que una tupla también contiene elementos los cuales no podrán mutar, es decir, no pueden cambiar.

tupla inmutabl; no se puede editar.
lista mutable; se puede editar.

La diferencia entre lista y tupla es que a la lista se le puede quitar o agregar elementos, eso la hace mutable mientras que la tupla no se le pueden quitar ni agregar elementos, pero al momento de realizar procesos, es mas eficaz que una lista.

La lista se declara así:
lista = [variable, variable2, variable3, … n]
Y la tupla de la siguiente manera:
tupla = (variable, variable2, variable3 … n)

Muy buenos ejemplos.!

Aportando a la clase, encontré un recurso donde explican más a fondo sobre la mutabilidad y la inmutabilidad en python, espero les sirva

http://elclubdelautodidacta.es/wp/2012/09/python-el-sagrado-misterio-de-la-inmutabilidad/

Tuplas: cuando usamos tuplas, python utiliza menos recursos para mantenerlas vivas en nuestro programa.
A diferencia de cuando usamos listas, ya que las listas al ser mutables python utiliza más recursos para poder estarlas modificando.


Las tuplas son muy similares al concepto de las listas. En ambas se pueden alojar datos del mismo o diferente tipo, pero en el caso de las tuplas estas no se pueden modificar (ósea, no se pueden eliminar ni agregar elementos), por lo que se dice qué las tuplas son objetos inmutables. En el caso de las listas, como ya se vio, hay métodos que nos permiten modificarlas, pero esto tiene un problema, y es que necesita un mayor consumo de parte de la computadora para poder “mantener” estas listas, por lo que las tuplas son mucho más rápidas. Por último, hay otra diferencia, y es que en vez de escribir corchetes entre los elementos como en las listas, se escriben paréntesis. Mira este ejemplo:

>>> objetos = (1, 2, 3, 4, True)
>>> objetos
(1, 2, 3, 4, True)```

Lo que no tengo claro es cuando podemos usar TUPLAS y cuando usar LISTAS: recuerdo clases atrás, usamos un ejemplo de colocar hasta un cierto numero, el profesor utilizo hasta el 100, y lo asigno como LIMITE(en mayúscula)asignando como inmutable, en este caso ya estaría usando una TUPLA, seria asi o ando lejos de lo explicado? 😃

Tuplas
Las tuplas son un tipo de dato que se parecen a las listas, la diferencia es que las listas son dinámicas y las tuplas son estáticos, es decir, son inmutables no se puede modificar sus elementos.

Tuplas

Las tuplas se declaran con paréntesis, recuerda que no puedes editar los datos de una tupla después de que la has creado. Son más rápidas e inmutables.

 >>> T = (22, True, "una tupla", (1, 2)) 
 >>> T[0] 
 22

Concepto crítico: mutabilidad, inmutabilidad y referencia en Python:
A efectos prácticos, es como si se tratara de un puntero (empleando conceptos de otros lenguajes) a ese objeto,
Es decir, no contiene su valor, sino una referencia a él.

>>> x = ('a', 'b', 'c')
>>> id(x)
140657627208800
>>> y = list(x)
>>> id(y)
140657627169224
>>> y[1]='k'
>>> x = tuple(y)
>>> id(x)
140657627208872
>>> x
('a', 'k', 'c')
>>> 

Las listas son dinámicas, se le pueden agregar elementos, por lo que python, el lenguaje por debajo necesite más memoria para mantener vivas a estas mismas listas mientras se trabajan con ellas, las tuplas, como no pueden cambiarse, es decir son inmutables, se procesan más rápido.

Desde hace tiempo me había quedad la duda, pero gracias al profe ya me queda claro, gracias

¡Muy bueno! Los lenguajes de bajo nivel necesitan que el tamaño de los arreglos incluso se definan con anterioridad. Esto para ahorrar memoria. Python dispone de las tuplas pero aun así continúa siendo muy dinámico 😎