Otros tipos de datos Estructurados. (Informativo)

Sitio: Facultad de Ingeniería U.Na.M.
Curso: Informática ET241/EM241/IC241/IN241/IM204
Libro: Otros tipos de datos Estructurados. (Informativo)
Imprimido por: Invitado
Día: domingo, 19 de mayo de 2024, 10:31

1. Tupas

Introducción al tipo de dato Tuplas y Sets, conceptos,  sintaxis y usos de la misma.

1.1. Introducción

Tuplas

Una tupla es una colección, un conjunto ordenado e inmutable de elementos del mismo o diferente tipo


En Python las tuplas se escriben con paréntesis.

Una vez que se crea una tupla, NO se puede cambiar sus valores.

Figura 1

Para acceder a los elementos de una tupla se debe hacer referencia al número de índice, dentro de corchetes. Observar las líneas 16 y 17.

Salida:
Figura 2

El comando del elimina la tupla. 

Figura 3

En la línea  11  se elimina la tupla. Si se elimina # de la línea 12 , el script tiraría un error , ya que no se puede mostrar algo que no existe.

Figura 4

1.2. Recorriendo la tupla

Para recorrer los elementos de las tuplas se utiliza un bucle o estructura for. 

Iterar a través de los elementos e imprimir los valores de la tupla:

Figura 1

Observar el sangrado de la línea 15: determina que esa línea corresponde al bloque de instrucciones del bucle for.

Para recorrer la tupla utilizando el bucle for existen dos maneras:

  1. Recorriendo los valores (línea 14 y15)
  2. Usando el índice para mostrar los valores (línea 18 a 20). Utilizando esta manera se genera una secuencia de números con la función range(). Dentro de este rango se usa la función len() que recibe como argumento la tupla, y regresa la cantidad o longitud de la tupla que en este caso es 5.

  1. ¿Por qué se usa un ciclo for para recorrer una tupla?
  2. ¿Qué pasa si no se sangra la línea de print(x)?
  3. ¿Cómo accedo a un valor de la tupla?

1.3. La indexación negativa


Indexación negativa significa que comienza desde el final, -1 se refiere al último valor, -2 se refiere al anteúltimo valor, etc.

Imprimir el último elemento de la tupla.

Figura 1

Figura 2

1. ¿Qué saldría por pantalla si escribo : print(mi_primer_tupla[-5])?

2. ¿Qué saldría por pantalla si escribo : print(mi_primer_tupla[0])?

3. Si quiero mostrar el último elemento de una tupla y no se la longitud, ni el índice ¿Puedo mostrarlo?

1.4. Gama de índices

Se puede especificar un rango de índices estableciendo dónde empezar y dónde terminar la gama.

Al especificar un rango, el valor regresado será una nueva tupla con los elementos especificados.

Figura 1

Salida:

Figura 2

1. Si escribo print(mi_primer_tupla[2:5], ¿Muestra el elemento mi_primer_tupla[2]?

2. Si escribo print(mi_primer_tupla[2:5], ¿Muestra el elemento mi_primer_tupla[5]?

3. Como diría matemáticamente que se puede expresar el rango de índices que en la Tupla de Python se escribe [2:5]?

1.5. Cambiar los valores de tupla

Las tuplas son inmutables por lo que una vez que se crea una tupla, no se puede cambiar sus valores.

Pero hay una solución, se puede convertir la tupla en una lista, modificar la lista y convertir la lista de nuevo en una tupla.

Figura 1

En el intérprete:

Figura 2

En  Spyder 3.

Figura 3

Salida:

Figura 4

¿La salida es la misma?

Es posible que en algunos casos, dependiendo de la versión de Python, pueda aparecer un error al intentar convertir una lista a tupla, por ejemplo:

"TypeError: 'tuple' object is not callable"

En este caso se sugiere pegar el error, tal como aparece en el buscador de Python, luego identificar sitios con prestigio o de renombre para poder ver los comentarios. Evitar los videos en primer lugar o la publicidad.

Ejemplo:

Figura 4

1. ¿Por qué tengo que convertir una tupla a lista para modificar?

2. ¿Qué función uso para convertir una lista a una tupla?

3. ¿Qué función uso para convertir una tupla a una lista?

4. ¿Qué argumentos usa para la función list?

5. ¿Qué argumentos usa para la función tuple?

1.6. Comprobar si existe artículo


Se debe utilizar if  in para determinar si un elemento especificado está presente en una tupla.

Figura 1

Salida:

1. ¿Por qué la evaluación del if en la línea 11 resulta Falsa?

2. ¿Por qué no se ejecuta la línea 12?

3. ¿Qué pasa si elimino el sangrado en la línea 12?

4. ¿Puede justificar por qué la línea 13 se evalúa en True?

5. ¿Que hace in tuplax?

6. ¿Qué pasa si en la línea 11, reemplazo 'Sabado'  por Sabado?

1.7. Longitud tupla

La función len() se utiliza para determinar el número de elementos de una tupla.

Figura 1

1. ¿Qué argumentos recibe len?

2. ¿La función len se puede usar en Listas?

3. ¿La función len se puede usar en Diccionarios?

Recordar nuevamente que Python tiene muchas funciones que se conocen como funciones: Built-in Functions ó Funciones internas, propias del Python. Len() es una de ellas. Se sugiere al alumno dirigirse al sitio de documentación oficial de Python y tratar de identificar en la lista que aparece cuantas de las funciones listadas vimos.

Documentación de Python ( docs.python.org/3/library/functions.html)

1. ¿Cuántas funciones internas tiene Python?

2. ¿Puede identificar cuál/es fue/ fueron las funciones internas vistas en: "Python Primer Contacto" del Tema 2 Introducción a la Programación?

1.8. Añadir los artículos

Cualquier intento de agregar o modificar una tupla nos dará ERROR.

Figura 1

Salida:

Figura 2

1. ¿Qué dice el Tipo de Error?

2. Puede traducir el mensaje en el Google translator. ¿Coincide con lo que Ud. respondió en la pregunta anterior?

3. ¿En qué línea se produce la asignación de un nuevo elemento a la Tupla?

4. ¿En qué línea se inicializa la tupla?

1.9. Eliminar elementos

 ¡No se puede eliminar elementos en una tupla!!!!

Las tuplas son inmutables, por lo que no se pueden eliminar elementos de ella, pero se puede eliminar por completo la tupla con la función interna del.

Figura 1

Salida:

Figura 2

1. ¿Por qué tira error la línea 13?

2. ¿La línea 12 borra o vacía la tupla?

3. ¿Qué diferencias hay entre borrar y vaciar la tupla?

1.10. Crear tupla con ....

Podemos crear tuplas con varios elementos, con un elemento o incluso vacía. 

Figura 1

Salida:

Figura 2

1. ¿Qué tipos de datos muestran las líneas: 11, 14 y 17?

2. ¿Qué pasa si elimina la coma de la línea 12, la que está antes de cerrar el paréntesis?

3. ¿Por qué sucede lo que sucede si eliminamos la coma de la línea 12?

4. ¿Cuántas funciones internas usamos en el script de la figura 1?

5. ¿Cuáles fueron los argumentos que recibieron las funciones internas usadas en el script de la figura 1?

1.11. Unir dos tuplas

Para unir dos o más tuplas puede utilizar el operador +. La concatenación de dos tuplas dá como resultado otra tupla.

Figura 1

Salida:

Figura 2

1. ¿Qué mostraría por pantalla print(trabajo[-1])?

2. ¿Qué mostraría por pantalla print(semana[-3])?

3. ¿Qué mostraría por pantalla print(3*finde)?

4. ¿Qué mostraría por pantalla print(2*finde[-1])?

5. ¿Qué hace el operador *?

1.12. La tupla () Constructor

La función tuple() se utiliza para crear una tupla.

Figura 1

Figura 2

1. ¿Qué argumentos tiene la función tuple?

2. ¿Qué pasa si escribe la línea 4 de la siguiente manera:  finde=tuple(nombre_nuevo1, nombre_nuevo2)? ¿Tira error? ¿Por qué?

3. ¿Se encuentra tuple dentro de las funciones internas de Python ( LINK.) ?

1.13. Resumen de métodos y funciones

A modo de comentario, listamos métodos y funciones relacionadas con las tuplas. Algunas fueron vistas en este capítulo.

  • count():returns occurrences of element in a tuple
  • index():returns smallest index of element in tuple
  • any():Checks if any Element of an Iterable is True
  • all():returns true when all elements in iterable is true
  • ascii():Returns String Containing Printable Representation
  • bool():Converts a Value to Boolean
  • enumerate():Returns an Enumerate Object
  • filter():constructs iterator from elements which are true
  • iter():returns an iterator
  • len():Returns Length of an Object
  • max():returns the largest item
  • min():returns the smallest value
  • map():Applies Function and Returns a List
  • reversed():returns the reversed iterator of a sequence
  • slice():returns a slice object
  • sorted():returns a sorted list from the given iterable
  • sum():Adds items of an Iterable
  • tuple():Returns a tuple
  • zip():Returns an iterator of tuples

Se pueden ver ejemplos en:

https://www.programiz.com/python-programming/methods/tuple

1.14. Ejercicios Propuestos

  1. Escribir un programa diaSiguienteE que dada una fecha expresada como la terna (Día, Mes, Año) (donde Día, Mes y Año son números enteros) calcule el día siguiente al dado, en el mismo formato.

  2. Escribir un programa diaSiguienteT que dada una fecha expresada como la terna (Día, Mes, Año) (donde Día y Año son números enteros, y Mes es el texto Ene, Feb, ..., Dic, según corresponda) calcule el día siguiente al dado, en el mismo formato.

  3. Escribir un programa que defina una tupla de elementos e indique si se encuentran ordenados de menor a mayor o no.

  4. Dada una tupla de números enteros, escribir un programa que:

    a) cree una tupla con todos los que sean primos. b) cree una tupla con la sumatoria y el promedio de los valores. c) cree una tupla con el factorial de cada uno de esos números.

  5. Escribir un programa que a partir de una lista de tuplas (Apellido, Nombre, Inicial_segundo_nombre) cree una lista de cadenas donde cada una contenga primero el nombre, luego la inicial con un punto, y luego el apellido.

  6.  Definir una tupla llamada “letras” con las primeras 6 letras del abecedario (en minúscula) por separado, es decir, cada letra es un elemento . Luego: 

▪ Mostrar todos los elementos

▪ Mostrar todos los elementos del 2do al ultimo

▪ Mostrar todos los elementos del 1ro al 4to

▪ Mostrar todos los elementos del 3ro al 5to

▪ “Modificar” la tupla y cambiar las letras de minúsculas a mayúsculas

▪ Comprobar si existe en la tupla la letra con la que comienza tu nombre

▪ Determinar la cantidad de elementos de la tupla con la función len()

 ▪ Definir otra tupla “letras2” con las próximas 3 letras (en minúsculas)

▪ Unir “letras” y “letras2” en una sola tupla llamada “letras3”

  • Mostrar las 3 tuplas por pantalla

7. Definir la tupla “números” con los siguientes números enteros:  ▪ 7, 5, 2, 3, 4, 8, 6, 9, 2

  • Buscar y mostrar por pantalla el máximo valor y su posición en la lista utilizando max() e index().
  • ¿Qué sucede si quiero hacer lo mismo para obtener el menor valor y su ubicación?

  •  Contar y mostrar por pantalla la cantidad de veces que aparece el numero 2 con count()

 

 



2. Sets

El Set es otro tipo de dato estructurado que se puede usar en Pyhon

2.1. Introducción

Set (Conjunto)

En Python, Set es una colección desordenada de tipos de datos que es iterable, mutable y no tiene elementos duplicados. 

Set presenta métodos como intersección, unión, diferencias, etc. similar a los vistos en Matemática en Teoría de Conjuntos.

El orden de los elementos de un conjunto no está definido, aunque puede constar de varios elementos.

La principal ventaja de usar un set o  conjunto, a diferencia de una lista, es que tiene un método altamente optimizado para verificar si un elemento específico está contenido o no en el conjunto


La diferencia con un Diccionario es que el set NO tiene par Indice : valor 

  • Sus elementos no pueden repetirse.
  • No se puede modificar.


1. Elija un equipo de algún deporte y cree un  conjunto o set.

2. ¿Cuál es el tipo de dato de un set  y como lo puedo mostrar?

3. ¿Uso llaves o corchetes para definir un diccionario? ¿ y un set?

2.2. Creando un set

Para crear un conjunto, basta con encerrar una serie de elementos entre llaves { }, o bien usar el constructor de la clase set()  y pasarle como argumento un objeto iterable.


# Creating a Set
set1 = set()
print("Initial blank Set: ")
print(set1)
# Creating a Set with the use of a String
set1 = set("GeeksForGeeks")
print("\nSet with the use of String: ")
print(set1)
# Creating a Set with the use of Constructor
# (Using object to Store String)
String = 'GeeksForGeeks' #String
set1 = set(String) #agrego string a set
print("\nSet with the use of an Object: " )
print(set1)
# Creating a Set with # the use of a List
set1 = set(["Geeks", "For", "Geeks"]) #agrego lista a set
print("\nSet with the use of List: ")
print(set1)

La Salida de este script sería:



Un conjunto contiene solo elementos únicos, pero en el momento de la creación del conjunto, también se pueden pasar varios valores duplicados. 

El orden de los elementos de un conjunto no está definido y no se puede cambiar. 

No es necesario que el tipo de elementos de un conjunto sea el mismo, también se pueden pasar al conjunto varios valores de tipos de datos mezclados. 

# Creating a Set with a List of Numbers
# (Having duplicate values)
set1 = set([1, 2, 4, 4, 3, 3, 3, 6, 5]) #Lista con valores duplicados
print("\nSet with the use of Numbers: ") #ver que NO existen valores duplicados!
print(set1)
# Creating a Set with
# a mixed type of values
# (Having numbers and strings)
set1 = set([1, 2, 'Geeks', 4, 'For', 6, 'Geeks']) #Lista con valores duplicados
print("\nSet with the use of Mixed Values") #ver que NO existen valores duplicados!
print(set1)>



Nota:
x={}
Esto en Python crea un Diccionario vacio, no un Set.!!

2.3. Añadir elemento al set

Una función hash es una operación criptográfica que genera identificadores únicos e irrepetibles a partir de una información dada .

Las tuplas se pueden agregar a un conjunto porque son inmutables y se pueden utilizar con hash. 

# Python program to demonstrate

# Addition of elements in a Set
# Creating a Set
set1 = set()
print("Initial blank Set: ")
print(set1)
# Adding element and tuple to the Set
set1.add(8)
set1.add(9)
set1.add((6,7)) #agrego una Tupla a set1
print("\nSet after Addition of Three elements: ")
print(set1)
# Adding elements to the Set
# using Iterator
for i in range(1, 6):
set1.add(i)
print("\nSet after Addition of elements from 1-5: ")
print(set1)

La Salida Sería:




 

2.4. Añadir mas elementos al set

Para añadir dos o más elementos se utiliza el método update ()

El método update () acepta listas, cadenas, tuplas y otros conjuntos como argumentos. 

En todos estos casos, se evitan los elementos duplicados. 

# Python program to demonstrate
# Addition of elements in a Set
# Addition of elements to the Set
# using Update function
set1 = set([ 4, 5, (6, 7)]) #agrego 4, 5 y una tupla a set1
set1.update([10, 11])# Agrego una lista al set1
print("\nSet after Addition of elements using Update: ")
print(set1)

Salida:




2.5. Eliminando elementos

Para eliminar elementos se utiliza el método remove() o el método discard()

Si se utiliza el método  remove () puede surgir  un KeyError si el elemento no existe en el conjunto. por ello se recomienda utilizar discard () ya que si el elemento no existe en el conjunto, permanece sin cambios. 

# Python program to demonstrate
# Deletion of elements in a Set
# Creating a Set
set1 = set([1, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12])
print("Initial Set: ")
print(set1)
# Removing elements from Set
# using Remove() method
set1.remove(5)
set1.remove(6)
print("\nSet after Removal of two elements: ")
print(set1)
# Removing elements from Set
# using Discard() method
set1.discard(8)
set1.discard(9)
print("\nSet after Discarding two elements: ")
print(set1)
# Removing elements from Set
# using iterator method
for i in range(1, 5):
set1.remove(i)
print("\nSet after Removing a range of elements: ")
print(set1)

La salida de este script sería:


La función pop () también se utiliza para eliminar y devolver un elemento del conjunto, pero elimina solo el último elemento del conjunto.


Si el conjunto está desordenado, no existe forma de determinar qué elemento se muestra mediante la función pop (). 

# Python program to demonstrate
# Deletion of elements in a Set
# Creating a Set
set1 = set([1, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12])
print("Initial Set: ")
print(set1)
# Removing element from the
# Set using the pop() method
set1.pop()
print("\nSet after popping an element: ")
print(set1)

La salida de este script sería:



Fuente : https://www.geeksforgeeks.org/python-sets/


2.6. Longitud del set

La función  len() permite contar la cantidad de elementos del set.


conjunto={'item1', 'item2', 'item3', 'item4', item5'}


2.7. Acceso a los elementos


No se puede acceder a los elementos del conjunto haciendo referencia a un índice, porque los conjuntos están desordenados y los elementos no tienen índice.

Se puede recorrer los elementos del conjunto utilizando un ciclo for, o preguntar si un valor especificado está presente en un conjunto, utilizando la palabra clave in.

# Python program to demonstrate
# Accessing of elements in a set
# Creating a set
set1 = set(["Geeks", "For", "Geeks"])
print("\nInitial set")
print(set1)
# Accessing element using
# for loop
print("\nElements of set: ")
for i in set1:
print(i, end=" ")
# Checking the element
# using in keyword
print("Geeks" in set1)

Salida:




2.8. Convirtiendo listas a sets





2.9. Métodos

Salida:

Ejemplo: crear un conjunto a partir de un string.

Salida:

Ver que los caracteres repetidos NO están, esto por que los sets NO tienen elementos duplicados.!

2.10. Resumen de métodos

Set Methods

Function Description
add() Adds an element to a set
remove() Removes an element from a set. If the element is not present in the set, raise a KeyError
clear() Removes all elements form a set
copy() Returns a shallow copy of a set
pop() Removes and returns an arbitrary set element. Raise KeyError if the set is empty
update() Updates a set with the union of itself and others
union() Returns the union of sets in a new set
difference() Returns the difference of two or more sets as a new set
difference_update() Removes all elements of another set from this set
discard() Removes an element from set if it is a member. (Do nothing if the element is not in set)
intersection() Returns the intersection of two sets as a new set
intersection_update() Updates the set with the intersection of itself and another
isdisjoint() Returns True if two sets have a null intersection
issubset() Returns True if another set contains this set
issuperset() Returns True if this set contains another set
symmetric_difference() Returns the symmetric difference of two sets as a new set
symmetric_difference_update() Updates a set with the symmetric difference of itself and another


Fuente : https://www.geeksforgeeks.org/python-sets/



2.11. Hash

Sobre Hash ( esto es solo informativo para el Alumno, NO es parte del programa de la Materia.) 

Una función hash es cualquier función que se pueda utilizar para asignar datos de tamaño arbitrario a valores de tamaño fijo. Los valores devueltos por una función hash se denominan valores hash, códigos hash, resúmenes o simplemente hash. Los valores se utilizan generalmente para indexar una tabla de tamaño fijo llamada tabla hash. El uso de una función hash para indexar una tabla hash se denomina direccionamiento de almacenamiento de dispersión o hash.

Las funciones hash y sus tablas hash asociadas se utilizan en aplicaciones de almacenamiento y recuperación de datos para acceder a los datos en un tiempo pequeño y casi constante por recuperación. Requieren una cantidad de espacio de almacenamiento solo una fracción mayor que el espacio total requerido para los datos o registros en sí. El hash es una forma de acceso a datos que ahorra espacio en el almacenamiento y computacionalmente, que evita el tiempo de acceso no lineal de listas ordenadas y no ordenadas y árboles estructurados, y los requisitos de almacenamiento, a menudo exponenciales, de acceso directo a espacios de estado de claves grandes o de longitud variable.

El uso de funciones hash se basa en las propiedades estadísticas de la interacción de teclas y funciones: el comportamiento en el peor de los casos es intolerablemente malo con una probabilidad muy pequeña, y el comportamiento del caso promedio puede ser casi óptimo (colisión mínima). 

Las funciones hash están relacionadas con (y a menudo se confunden con) sumas de verificación, dígitos de verificación, huellas dactilares, compresión con pérdida, funciones de aleatorización, códigos de corrección de errores y cifrados. Aunque los conceptos se superponen en cierta medida, cada uno tiene sus propios usos y requisitos y está diseñado y optimizado de manera diferente. Las funciones hash se diferencian de los conceptos enumerados principalmente en términos de integridad de los datos.

Fuente: https://en.wikipedia.org/wiki/Hash_function

Para aquellos que se pregunten que al haber una colisión mínima que sucede?. Esto generaría un hash duplicado , la respuesta es sí, pero existe una solución sencilla,  aumentar la cantidad de bits de la función hash,  una variante de la función hash son SHA-1 y SHA-2. Esta última es sus variantes : 
  • SHA-2:SHA-224
  • SHA-2: SHA-256 
  • SHA-2: SHA-384
  • SHA-2: SHA-512
  • SHA-2: SHA-512/224
  • SHA-2: SHA-512/256

Al momento NO se encontraron COLISIONES!!

2.12. TypeError: unhashable


Un objeto es hashable si tiene un valor hash que nunca cambia durante su vida útil.

Un objeto hashable no puede cambiar: es Inmutable.

Los objetos que pueden cambiar o mutar se dice que son  NO Hashables.

El termino Hashable se asocia con Resumible, por que el Hash va a resumir el objeto y es resumible por que el Hash NUNCA cambia.


Algunos tipos de datos que pueden arrojar ese error son:

  • List (Listado): Admite cualquier tipo de valores
  • Dict (Diccionario): Admite solo claves Resumibles (Hashables) y valores de cualquier tipo
  • Set (Conjunto): Admite solo valores Resumibles (Hashables)


El error indicado como Typeerror: Unhashable type ocurre cuando tratamos de usar un tipo de dato que puede cambiar en un lugar donde debería ir un dato que NO puede cambiar (hashable).



Diccionario:

Recordemos que un diccionario tiene alguna restricción respecto de su clave:

  • NO PUEDE REPETIRSE.
  • NO SE PUEDE MODIFICAR
Si trato de asignar como clave de un diccionario algo inmutable un objeto que puede cambiar me tira error del tipo : TypeError: unhashable type



Si se descomentaran las líneas 7 , 8 y 9 veríamos errores del tipo:
Respectivamente, esto sucede por que la clave de un diccionario NO puede cambiar es: Hashable, pero lo que intentamos poner como clave puede cambiar.. por lo tanto tira el error.
Veamos que la línea que asigna una Tupla ( que es inmutable) como clave NO tira error.
La salida del scritp sería:

Set:

Recordemos que un diccionario tiene alguna restricción respecto de su clave:

  • NO PUEDE REPETIRSE.
  • NO SE PUEDE MODIFICAR
Veamos este scritp:

Al igual que el caso anterior, cuando intentamos agregar elementos que pueden cambiar (Diccionario o Lista) a un set que tiene que tener elementos NO se pueden cambiar tiraría error si descomentamos las líneas 7 y 8.
Esto no sucede cuando agregamos una tupla que es inmutable o el nro. 7 en la línea 5 que también es Inmutable.
La salida del Scritp sería:

Veamos otro caso, el de agregar un set a otro set.
Esto también tiraría un error por que set2 puede cambiar.. y los elementos de set1 NO pueden cambiar, si se puede agregar... pero sería otro objeto.

Objeto Hashable vs. Elementos de un objeto Hashable.

No confundir el concepto de que un elemento sea hashable, como la tupla , con las claves de un diccionario o con los elementos de un set.
Veamos el siguiente código:

La salida de este script será:
 
La salida None ocurre para todos menos para la tupla, que es inmutable!
El método __hash__ permite calcular un número inmutable de un objeto. Los que varían como Listas, Diccionarios y sets NO tiene Hash ( None).
Veamos algunos casos mas.

Podemos ver que los enteros, reales y string son Hashables, al igual que la tupla y la clave de un diccionario y los elementos de un set.
Lo mismo pasa para los Valores de Diccionarios y listas.
NO así para las Listas y Diccionarios.

2.13. TypeError: 'int' object is not iterable

A menudo se obtienen errores de este tipo: TypeError: 'int' object is not iterable

Esto sucede por que el objeto no se puede iterar.



El objeto a es un entero 'int'  y no es iterable, no se puede convertir en una lista.. que si sería un objeto iterable, el error  está diciendo claramente que no puede ejecutar la iteración en un número entero.

Otro:


Nuevamente el error aparece, esto es por que intentamos que el for iterar algo que tin

2.14. Ejercicios Propuestos

1. Dado el siguiente conjunto de Sets.

it_companies = {'Facebook', 'Google', 'Microsoft', 'Apple', 'IBM', 'Oracle', 'Amazon'}
A = {19, 22, 24, 20, 25, 26}
B = {19, 22, 20, 25, 26, 24, 28, 27}
age = [22, 19, 24, 25, 26, 24, 25, 24]

  • Busque la longitud del conjunto it_companies
  • Añadir 'Twitter' a it_companies
  • Inserte varias empresas de TI a la vez en el conjunto it_companies
  • Quitar una de las empresas del conjunto it_companies
  • ¿Cuál es la diferencia entre eliminar y desechar?
2. Dado el siguiente conjunto de Sets.

it_companies = {'Facebook', 'Google', 'Microsoft', 'Apple', 'IBM', 'Oracle', 'Amazon'}
A = {19, 22, 24, 20, 25, 26}
B = {19, 22, 20, 25, 26, 24, 28, 27}
age = [22, 19, 24, 25, 26, 24, 25, 24]

  • Convierta las edades en un conjunto y compare la longitud de la lista y el conjunto, ¿cuál es más grande?
  • Explicar la diferencia entre los siguientes tipos de datos: string, list, tupla y set
  • Soy profesor y me encanta inspirar y enseñar a la gente. ¿Cuántas palabras únicas se han utilizado en la oración? Use los métodos de división y configúrelos para obtener las palabras únicas.
3. 

Dado el siguiente conjunto de Sets.

it_companies = {'Facebook', 'Google', 'Microsoft', 'Apple', 'IBM', 'Oracle', 'Amazon'}
A = {19, 22, 24, 20, 25, 26}
B = {19, 22, 20, 25, 26, 24, 28, 27}
age = [22, 19, 24, 25, 26, 24, 25, 24]

  • Unir A y B
  • Buscar A intersección B
  • Es A subconjunto de B
  • Son conjuntos disjuntos A y B?
  • Unir A con B y B con A
  • ¿Cuál es la diferencia simétrica entre A y B?
  • Eliminar los conjuntos por completo


2.15. Ejercicios resueltos

En una institución se dictan 3 cursos (Informática, Inglés y Dibujo Técnico). Realice un código en Python que muestre los siguientes resultados por pantalla:
  -Informe la cantidad total de alumnos que asisten a la institución.
  -Informe la cantidad de alumnos que asisten a los 3 cursos.
  -Informe la cantidad de alumnos que solo asisten a un curso.
  -Informe si un alumno, que se ingresa por teclado, asiste o no a la institución.
 
A tener en cuenta:
  -Un alumno puede asistir a más de un curso.
  -No hay que cargar ningún alumno por teclado

Resolución Ejercicio 1



matematica={'carlos', 'mateo', 'luis', 'maria', 'yanina','sabrina'}
informatica={'carlos','daiana','nicolas','daniel','andrea'}
dibujo={'carlos','nicolas','daniel','alicia','andrea','sabrina'}
print('Cantidad Total de Alumnos: {}'.\
format(len(matematica.union(informatica).union(dibujo))))print('Cantidad de Alumnos que asisten a los 3 cursos: {}'.\
format(len(matematica.intersection(informatica).intersection(dibujo))))
a=input('Ingrese un alumno para verificar si asiste a la institución: ')
print(a in matematica.union(informatica).union(dibujo))