¡Te damos la bienvenida a este reto!

1

Empezando con Python desde 0

Día 1

2

Variables, funciones y sintaxis básica

3

Tipos de datos: Numbers, Strings y Diccionarios

4

Playground - Retorna el tipo

Día 2

5

Operadores

6

Playground - Calcula la propina

Día 3

7

Condicionales

8

Playground - Averigua si un año es bisiesto

9

Ciclos

10

Playground - Dibuja un triangulo usando bucles

Día 4

11

Listas

12

Encuentra a los gatitos más famosos

13

Diccionarios

14

Obtén el promedio de los estudiantes

15

Tuplas

16

Obten la información de los paquetes

Día 5

17

Calcula la cantidad de letras en una oración

18

Encuentra el mayor palíndromo

Día 6

19

Sets

20

Encuentre la intersección de conjuntos

Día 7

21

List comprehension

22

Encuentra palabras con dos vocales

23

Dictionary Comprehension

24

Calcula la longitud de las palabras

Día 8

25

Funciones Lambda

26

Filtra mensajes de un user específico

27

Higher order functions

28

Crea tu propio método map

Día 9

29

Manejo de Errores y excepciones

30

Maneja correctamente los errores

31

Maneja las excepciones

Día 10

32

Playground - Crea un task manager usando closures

Día 11

33

Lectura de archivos de texto y CSV

Día 12

34

Programación orientada a objetos

35

Crea un auto usando clases

Día 13

36

Abstracción en Python

37

Playground - Crea un sistema de carrito de compras

38

Encapsulamiento en Python

39

Playground - Encapsula datos de los usuarios

Día 14

40

Herencia en Python

41

Playground - Jerarquía de animales usando herencia

Día 15

42

Polimorfismo en Python

43

Playground - Implementa un sistema de pagos

Día 16

44

Estructuras de datos en Python

45

Playground - Crea tu propia lista en python

46

Hash tables en Python

47

Playground - Implementación de una HashTable para Contactos

Día 17

48

Maps en Python

49

Playground - Crea un task manager con Maps

Día 18

50

Singly Linked List en Python

51

Playground - Implementación de una singly linked list

Día 19

52

Stacks en Python

53

Playground - Implementación de un stack

Día 20

54

Queues en Python

55

Playground - Implementación de una queue

Día 21

56

¡Lo lograste!

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprende Inglés, Desarrollo Web, AI, Ciberseguridad y mucho más.

Antes: $249

Currency
$209
Comienza ahora

Termina en:

0 Días
17 Hrs
50 Min
26 Seg

Encuentre la intersección de conjuntos

20/56

Aportes 50

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?


.
.
.
.
.
.
.

def find_set_intersection(sets):
  if not sets:
    return set()
  intersection = sets[0]
  for i in sets[1:]:
    intersection &= i
  return intersection

#Tests
sets = [
  {1, 2, 3, 4},
  {2, 3, 4, 5},
  {3, 4, 5, 6}
]

output = find_set_intersection(sets)
print(output)

sets = [
  {1, 2, 3, 4},
  {2, 4, 6, 8},
  {3, 6, 9, 12}
]

output = find_set_intersection(sets)
print(output)

Mi solución:
.
.
.
.
.
.
.
.
.
.
.

def find_set_intersection(sets):
  return set() if not sets else sets[0].intersection(*sets[1:])

Mi código funciona pero no pasa todas las pruebas,
¿alguna idea?
.
.
.
.
.
.
.

def find_set_intersection(sets):
iteracion = 1
for conjunto in sets:
conjunto = set(conjunto)
print(conjunto)
if iteracion ==1 :
interseccion = conjunto
else:
interseccion = interseccion & conjunto
iteracion += 1
return interseccion

sets1 = [{1, 2, 3, 4},{2, 3, 4, 5},{3, 4, 5, 6}]

print(find_set_intersection(sets1))

sets2 = [{1, 2, 3, 4},{2, 4, 6, 8},{3, 6, 9, 12}]

print(find_set_intersection(sets2))

Solución 😄…
.

.
.
.
.

def find_set_intersection(sets):
  return sets.pop().intersection(*sets) if sets else set()

lo hice utilizando una de las propiedades de los sets el ampersan devuelva todos los elementos en común que tengan cada uno de los sets


.
.
.
Listo ! 🐍👌🏼
.
.
.
.
.

def find_set_intersection(sets):
  #si la lista no esta vacía
  if (sets != []):
    #primer conjunto de la lista
    respuesta = sets[0]
    #iterando para encontrar las intersecciones
    for i in range (1,len(sets)):
      respuesta =  (respuesta & sets[i]) 
  #si la lista esta vacía    
  else:
    respuesta=set()
    
  return(respuesta)
comparto mi código: ```python def find_set_intersection(sets): first_set = sets[0] if len(sets) else set() intersection = set() for current_set in sets: if len(intersection): intersection = intersection.intersection(current_set) else: intersection = first_set.intersection(current_set) return intersection ```
Mi propuesta ![](https://static.platzi.com/media/user_upload/imagen-4265a4de-5752-46be-b602-bf51d1aca7ef.jpg)
![]()Si tienes un código más reducido, dímelo![](https://static.platzi.com/media/user_upload/ant%20spoiler%205-9a8112c8-a424-4298-8821-b9c19aeb1a34.jpg). Gracias ```python def find_set_intersection(sets): if len(sets) == 3: return sets[0].intersection(sets[1]).intersection(sets[2]) # print(sets[0].intersection(sets[1]).intersection(sets[2])) else: return set() ```def find\_set\_intersection(sets):  if len(sets) == 3:    return sets\[0].intersection(sets\[1]).intersection(sets\[2])    # print(sets\[0].intersection(sets\[1]).intersection(sets\[2]))  else:    return set()
hola lo hice así, aunque no corre aqui si en visual code.... y la verdad no se porque, si alguien sabe me lo indica? pero aqui va mi código: ![](https://static.platzi.com/media/user_upload/image-57f84690-0fb2-43f2-8e5d-ed46f023309c.jpg)
```python def find_set_intersection(sets): out=set() if len(sets) == 0: return out if len(sets)==1: return sets[0] inter=sets[0] for conjunto in sets[1:]: inter = inter & conjunto return inter ```
Solución corta... ```python def find_set_intersection(sets): return set.intersection(*sets) if sets else set() ```
Me tomó un buen rato pero lo conseguí sin utilizar métodos que no hemos visto en la teoría: ```js def find_set_intersection(sets): # Tu código aquí 👈 if len(sets) > 1: new_set = set(sets[0]) for i in sets: new_set = i & new_set return(new_set) else: new_set = set() return(new_set) ```
solución usando solo listas ```js def find_set_intersection(sets): array = [] final_set = [] for seter in sets: for word in seter: array.append(word) for word in array: if array.count(word) == len(sets): final_set.append(word) return set(final_set) ```
![](https://pics.craiyon.com/2023-10-15/d57f98694e7d41bc940681a81d00e066.webp) ```js def find_set_intersection(sets): out = sets[0] # out = sets[0] for i in range(len(sets)): out = (out & sets[i]) return set(out) ```def find\_set\_intersection(sets):   out = sets\[0]  # out = sets\[0]  for i in range(len(sets)):     out = (out & sets\[i])  return set(out)
````python ```![](https://static.platz.com/media/user_upload/image-2a97b8d5-2b85-498f-9ad7-258feb4e4520.jpg) ````
![](https://static.platzi.com/media/user_upload/image-d565b096-4105-49eb-80df-ac6ede1251b7.jpg)

🛡️🛡️Escudo anti-spoilers🛡️🛡️

Mi solución al reto:

def find_set_intersection(sets):
  count_sets = len(sets)
  result = set()
  for current_set in sets:
    for element in current_set:
      is_in_set = True
      for s in range(0,count_sets):
        if not element in sets[s]:
          is_in_set = False
          break
      if is_in_set:
        result.add(element)
  return result 

Para mi aporte, agregé la opción de que te avise si hay intersección.

#Conjuntos = [{1, 2, 3, 4}, {2, 3, 4, 5}, {3, 4, 5, 6}]
Conjuntos = [{1, 2, 3, 4}, {2, 4, 6, 8}, {3, 6, 9, 12}]
def Intersecciones(Conjuntos):
intersection = Conjuntos[0] & Conjuntos[1] & Conjuntos[2]
if intersection is True:
print(f"Su intersección es:{intersection}")
else:
print(“No hay Intersección. Interseccion Vacía”)
Intersecciones(Conjuntos)

def find_set_intersection(sets):
  # Tu código aquí 👈
  new_set = []
  if len(sets) == 0:
    return set()
  else:
    for i in sets:
      if new_set == []:
        new_set = i
      else:
        new_set = new_set & i
    return new_set

response = find_set_intersection([
  {1, 2, 3, 4},
  {2, 3, 4, 5},
  {3, 4, 5, 6}
])
print(response)

Solución:

def find_set_intersection(sets):
    print(sets)
    if len(sets)==0: return set()
    else:
        intersections=sets[0]
        return(intersections.intersection(*sets[1:]))

if __name__ == '__main__':
    sets = [
       {1, 2, 3, 4},
       {2, 3, 4, 5},
       {3, 4, 5, 6}
    ]
    
    response=find_set_intersection(sets)
    print(response)

    sets = [
       {1, 2, 3, 4},
       {2, 4, 6, 8},
       {3, 6, 9, 12}
    ]
    response=find_set_intersection(sets)
    print(response)


.
.
.
.
.

Les traigo mi solución:

def find_set_intersection(sets):
  # Tu código aquí 👈
  if len(sets) == 0:
    return set()
  else:
    intersections = sets[0]
    for i in sets:
      intersections = intersections.intersection(i)
  return intersections


Así quedo mi solución.

def find_set_intersection(sets):
  final = None
  if len(sets) > 0:
    final = sets[0]
    for x in sets[1:]:
      final = final & x
  else:
    final = set()
  return final
  pass

El test con el set vacio es un gran ejemplo de en muchas ocasiones denemos blindar nuestras funciones ante entradas inesperadas.

def find_set_intersection(sets):
  if  not sets:
    return set()
  intersection = sets[0]
  for _set in sets[1::]:
    intersection = intersection & _set

  return intersection


.
.
.
.
.
.
.

def find_set_intersection(sets):
  new_set = sets[0] & sets[1] & sets[2]

  return new_set

sets = [
  {1, 2, 3, 4},
  {2, 3, 4, 5},
  {3, 4, 5, 6}
]

result = find_set_intersection(sets)
print(result)

sets = [
  {1, 2, 3, 4},
  {2, 4, 6, 8},
  {3, 6, 9, 12}
]

result = find_set_intersection(sets)
print(result)

Mi solución, solo que la última prueba no la pasó


.
.
.
.
.

def find_set_intersection(sets):
  intersection = set()
  if sets != []:
    intersection = sets[0]
    for group in sets[1:]:
      intersection &= group
  
  return intersection


.
.
.
.
.
.
.
.
Mi solución. Sé que no es la más óptima, pero seguiré trabajando para optimizar mi código futuro c:


.
.
.
.
.
.
.
.
.
.

Mi solución:

def find_set_intersection(sets):
  if not sets:
    return set()

  intersection = sets[0]
  for a_set in sets[1:]:
    intersection &= a_set

  return intersection
def find_set_intersection(sets):
  # si la lista esta vacia , devuelve un conjunto vacio 
  if not sets:
    return set()

  #Inicializamos con el primeer conjunto en la lista
  intersection = sets[0]
  # Encontrar la interseccion con los conjuntos siguientes
  for set in sets[1:]:
    intersection = intersection.intersection(set)

  return intersection


response = find_set_intersection([
  {1, 2, 3, 4},
  {2, 4, 6, 8},
  {3, 6, 9, 12}
])
print(response)


.
.
.
.
.
.

def find_set_intersection(sets):
    if not sets:
        return set()

    intersection = sets[0].intersection(*sets[1:])

    return intersection
    pass


Dejo mi aporte! (2 soluciones) En la primera trabaje con los elementos y en la segunda con los indices.

def find_set_intersection(sets):
  inte = sets[0] if sets else set()
  for s in sets[1:]:
    inte = inte.intersection(s)
  return inte

def find_set_intersection(sets):
  inte = set()
  for s in range(len(sets)):
    if s == 0:
      inte = sets[s]
    inte = inte.intersection(sets[s])
  return inte


.
.
.
.
.
.
.
.

.
.
.
.

.

.
.
.
.

.
.
.

def find_set_intersection(sets):
  intersec = set()
  for i in range(0, (len(sets)-1)):
    if (i == 0):
      intersec = sets[i].intersection(sets[i+1])
    else:
      intersec = (sets[i+1]).intersection(intersec)
  return intersec

sets = [
  {1, 2, 3, 4},
  {2, 3, 4, 5},
  {3, 4, 5, 6}
]
print (find_set_intersection(sets))

No es el código más lindo pero anda

.
.
.
.
.
.
.

def find_set_intersection(sets):
  qty_sets = len(sets)
  if not sets:
    return set()
  new_set = sets[0] & sets[1]
  if len(new_set) > 0:
    for item in range(qty_sets-1):
      new_set = new_set & sets[item+1]  
  return new_set if len(new_set) > 0 else set()

Mi solución
.
.
.
.
.
.
.
.
.

def find_set_intersection(sets):
  # Tu código aquí 👈
  if len(sets) > 1:
    intersection = sets[0]
    for i in sets[1:]:
      intersection &= i
    return intersection
  else:
    return set()

Mi aporte

.
.
.
.
.

def find_set_intersection(sets):
    
    interseccion = set()
    i = 0
    for conjunto in sets:
        if i == 0:
            conjuntoaux = conjunto
        
        else:
          interseccion = conjunto.intersection(conjuntoaux)
          #print(interseccion)
          conjuntoaux = interseccion
         
        i += 1


    return interseccion
    pass


resultado = find_set_intersection(sets=[
    {1, 2, 3, 4},
    {2, 3, 4, 5},
    {3, 4, 5, 6}
])

print(resultado)

resultado = find_set_intersection(sets=[
    {1, 2, 3, 4},
    {2, 4, 6, 8},
    {3, 6, 9, 12}
])

print(resultado)

o
o
o
o
o
o
o
o

def find_set_intersection(sets):
  l = len(sets)
  conjunto_final = set()
  if l > 1:
    conjunto_final = sets[0]
    for i in range(1,l):
      conjunto_final = conjunto_final.intersection(sets[i])
  return  conjunto_final 

sets = [
  {1, 2, 3, 4},
  {2, 3, 4, 5},
  {3, 4, 5, 6}
]
print(find_set_intersection(sets))

sets = [
  {1, 2, 3, 4},
  {2, 4, 6, 8},
  {3, 6, 9, 12}
]
print(find_set_intersection(sets))

My solucion:
*
*
*
*
*
*
*
*

from functools import reduce

def find_set_intersection(sets):
  # Tu código aquí 👈
  if sets != []:
    intersection = set(reduce(lambda x,y: x&y,sets))
    return intersection 
  else:
    intersection = set()
    return intersection

item1={1,2,3}
item2 = {1,3}
item3 = {3,4,5}
lista = [item1, item2, item3]
print(find_set_intersection(lista))

Hint: El set necesita tener un conjunto para aplicar la .intercesión & sino sera seguirá vacío.



.
.
.
.
.

def find_set_intersection(sets):

  response = set()

  if (len(sets) == 0):
    return response
  
  response = sets[0]

  for set in sets[1:] :
    response = response & set

  return response


.
.

def find_set_intersection(sets):
   if len(sets) <= 1:
      return set()
   
   intersection = sets[0]
   for i in range(1, len(sets)):
      intersection = intersection & sets[i]
      
   return intersection

si tiene 0 o 1 elementos devolverá vacio
de lo contrario devolverá la interseccion


*
*
*
*
*

def find_set_intersection(sets):
    if len(sets) > 0:            
        result = sets[0]
        for i in range(1, len(sets)):
            result = result & sets[i]
        if result != sets[0]:
            return result
        else:
            return {}
    else: 
        return set()


Usando recursividad

def find_set_intersection(sets):

  if len(sets) == 0:
    return set()

  if len(sets) == 1:
    return sets[0]
 
  return find_set_intersection([sets[0] & s for s in sets[1:]])
undefined