Asume eso Sy Tson conjuntos asignados. Sin usar el operador de unión |, ¿cómo puedo encontrar la unión de los dos conjuntos? Esto, por ejemplo, encuentra la intersección:
S = {1, 2, 3, 4}
T = {3, 4, 5, 6}
S_intersect_T = { i for i in S if i in T }
Entonces, ¿cómo puedo encontrar la unión de dos conjuntos en una línea sin usar |?

|?|?def apply_set_operation(a, b, set_operation). Cuando se llama a esta función, preferiríaapply_set_operation(a, b, set.union)aapply_set_operation(a, b, set.__or__)Respuestas:
Puede usar el método de unión para conjuntos:
set.union(other_set)Tenga en cuenta que devuelve un nuevo conjunto, es decir, no se modifica a sí mismo.
fuente
|puede modificar la variable en línea:set_a |= set_bset_a = set_a.union(set_b). Si se refiere a "in situ", no va a hacer que, tanto crear un nuevoseta = set((1, 2, 3,)); b = set((1, 3, 4,)); id_a = id(a); a |= b; assert id_a == id(a)@jorgenkg tiene razón: la variablease modifica en línea. ¿Me estoy perdiendo de algo?a = set((1, 2, 3,)); b = set((1, 3, 4,)); c = a; a |= b; assert id(c) == id(a). Incluso siafue destruido,cno lo habría sido. Además,ces ahoraset([1, 2, 3, 4]), así que el comentario de @ jorgenkg es correcto.Podrías usar
or_alias:fuente
Si está de acuerdo con modificar el conjunto original (que es posible que desee hacer en algunos casos), puede usar
set.update():El valor de retorno es
None, peroSse actualizará para ser la unión del originalSyT.fuente
Suponiendo que tampoco puede usar
s.union(t), lo que es equivalente as | t, podría intentarO, si quieres una comprensión,
fuente
Si por unirse quieres decir unión, prueba esto:
Es un truco, pero no puedo pensar en un mejor revestimiento para hacerlo.
fuente
listysetestán construidas en funciones de pythonSupongamos que tienes 2 listas
para que pueda encontrar
AUnion de laBsiguiente maneraAdemás, si desea encontrar intersección y no intersección, haga lo siguiente
fuente
Puede descomprimir ambos conjuntos en uno como este:
El
*desempaqueta el conjunto. Desempaquetar es donde un iterable (por ejemplo, un conjunto o lista) se representa como cada elemento que produce. Esto significa que el ejemplo anterior se simplifica y{1, 2, 3, 4, 3, 4, 5, 6}luego se simplifica{1, 2, 3, 4, 5, 6}porque el conjunto solo puede contener elementos únicos.fuente
*en la línea 3?Puedes hacer
uniono simplemente listar la comprensiónA tendría todos los elementos de B
fuente