Variables de tipo Tupla
Las variables de tipo tupla son una colección de valores que se pueden repetir, pero que no pueden modificarse, son inmutables. Se representan con paréntesis ( ) y no se pueden modificar, son inmutables. Se crean empleando paréntesis, en lugar de corchetes como hacíamos con las listas.
tupla=("Cadiz",2,True,"Cadiz",[34,44])
print(type(tupla))
print(tupla)
Si ejecutamos el código anterior obtenemos:
<class 'tuple'>
('Cadiz', 2, True, 'Cadiz', [34, 44])
Accediendo a los elementos de una tupla
Accedemos a los elementos de una tupla igual que accedíamos a los de una lista, a través del índice que indica la posición. El índice se indica entre corchetes rectos, igual que con las listas
dias_semana=("Lunes","Martés","Miércoles","Jueves","Viernes",
"Sábado","Domingo")
primer_dia=dias_semana[0]
ultimo_dia=dias_semana[-1]
print(f"El primer día de la semana es {primer_dia}")
print(f"El último día de la semana es {ultimo_dia}")
Y el resultado:
El primer día de la semana es Lunes
El último día de la semana es Domingo
Al ser inmutables no se puede modificar el valor de un elemento determinado:
dias_semana=("Lunes","Martés","Miércoles","Jueves","Viernes",
"Sábado","Domingo")
dias_semana[0]="Monday"
El código anterior arroja el error:
TypeError: 'tuple' object does not support item assignment
Las tuplas tienen métodos similares a las listas, pero no aplicarían los métodos en los que se modifican valores, ya que son inmutables.
dias_semana=("Lunes","Martés","Miércoles","Jueves","Viernes",
"Sábado","Domingo")
num_elementos=len(dias_semana)
print(f"Numero de elementos: {num_elementos}")
indice=dias_semana.index("Jueves")
print(f"Indice: {indice}")
cuenta=dias_semana.count("Jueves")
print(f"cuenta: {cuenta}")
Resultado
Numero de elementos: 7
Indice: 3
cuenta: 1
Variables de tipo Conjunto
Las variables de tipo conjunto son una colección de valores únicos mutables. Es decir, los valores no se pueden repetir, pero si se pueden cambiar, podemos añadir y eliminar elementos del conjunto.
Para crear un conjunto, encerramos los elementos entre corchetes llave. El tipo devuelto, el tipo conjunto, es set
conjunto={3,5,"Hola"}
print(type(conjunto))
Resultado:
<class 'set'>
Operaciones con conjuntos
Este tipo de colecciones disponen de una serie de operadores propios para manejarlos
- El operador unión (“|”): conjunto_1 | conjunto_2. Devuelve un nuevo conjunto que tienen todos los elementos de los conjuntos operandos, pero sin elementos repetidos.
conjunto_1={1,2,3,4,5}
conjunto_2={3,4,5,6,7}
union=conjunto_1|conjunto_2
print(union)
Resultado:
{1, 2, 3, 4, 5, 6, 7}
El operador intersección (“&”): conjunto_1 & conjunto_2. Devuelve un nuevo conjunto con los elementos comunes a ambos conjuntos operandos.
conjunto_1={1,2,3,4,5}
conjunto_2={3,4,5,6,7}
interseccion=conjunto_1&conjunto_2
print(interseccion)
Resultado:
{3, 4, 5}
El operador diferencia (“-“): conjunto_1 – conjunto_2. Devuelve los elementos del primer conjunto operando que no están en el segundo.
conjunto_1={1,2,3,4,5}
conjunto_2={3,4,5,6,7}
dif1=conjunto_1-conjunto_2
dif2=conjunto_2-conjunto_1
print(f"elementos del conjunto 1 que no están en el 2: {dif1}")
print(f"elementos del conjunto 2 que no están en el 1: {dif2}")
Resultado:
elementos del conjunto 1 que no están en el 2: {1, 2}
elementos del conjunto 2 que no están en el 1: {6, 7}
Accediendo a los elementos de un conjunto
Los conjuntos no disponen de índices, por lo que no podremos emplearlos para acceder a sus elementos. Para recuperar los distintos elementos de un conjunto lo recorremos con un bucle
conjunto={3,5,"Hola"}
for elemento in conjunto:
print(elemento)
Resultado:
3
5
Hola
Conocer si un elemento pertenece a un conjunto
Empleando el operador in, podemos saber si un elemento pertenece a un conjunto
conjunto={"Ana","Pepe","Rosa","Guillermo","Juan"}
persona="Rosa"
if persona in conjunto:
print(f"{persona} está en el grupo")
Resultado:
Rosa está en el grupo
Eliminar duplicados de una lista: casting a Set
Una manera rápida de eliminar duplicados de una lista es convertirla en un tipo conjunto, para ello haríamos casting de la lista a set
lista=["cepillo","pasta de dientes","desodorante",
"colonia","tijeras","cepillo","desodorante"]
conjunto=set(lista)
print("LISTA:")
print(lista)
print("CONJUNTO:")
print(conjunto)
Resultado:
LISTA:
['cepillo', 'pasta de dientes', 'desodorante', 'colonia', 'tijeras', 'cepillo', 'desodorante']
CONJUNTO
{'cepillo', 'colonia', 'tijeras', 'pasta de dientes', 'desodorante'}
Métodos asociados a los conjuntos
Las variables de tipo conjunto tienen una serie de métodos asociados:
- add (<elemento>): Añade al conjunto el elemento indicado.
conjunto={"Ana","Pepe","Guillermo"}
persona="Lourdes"
conjunto.add(persona)
print(conjunto)
Resultado:
{'Guillermo', 'Lourdes', 'Pepe', 'Ana'}
- clear( ): Elimina todos los elementos del conjunto
conjunto={"Ana","Pepe","Guillermo"}
conjunto.clear()
print(conjunto)
Resultado:
set()
- copy( ): genera una copia del conjunto.
conjunto_1={"Ana","Pepe","Guillermo","Lourdes"}
conjunto_2=conjunto_1.copy()
conjunto_1.clear()
print(f"conjunto 1: {conjunto_1}")
print(f"conjunto 2: {conjunto_2}")
Resultado:
conjunto 1: set()
conjunto 2: {'Guillermo', 'Lourdes', 'Pepe', 'Ana'}
- discard(<elemento>): elimina del conjunto el elemento indicado
conjunto={"Ana","Pepe","Guillermo","Lourdes"}
conjunto.discard("Guillermo")
print(f"conjunto: {conjunto}")
Resultado:
conjunto: {'Lourdes', 'Pepe', 'Ana'}
- issubset(<conjunto_2>): comprueba si el conjunto pasado como parámetro está incluido en el conjunto al que se le aplica el método. Devuelve verdadero o falso.
conjunto_1={"Ana","Jesús"}
conjunto_2={"Ana","Lourdes","Jesús"}
if conjunto_1.issubset(conjunto_2):
print("conjunto 2 está incluido en conjunto 1")
Resultado:
conjunto 2 está incluido en conjunto 1
NOTA:
Este post es parte de la colección “Python”. Puedes ver el índice de esta colección aquí.