programa potencia operaciones lista entre diferencia diccionario convertir conjuntos conjunto python set

python - potencia - Cómo unir dos conjuntos en una línea sin usar "|"



operaciones entre conjuntos (8)

Asumiendo que tampoco puedes usar s.union(t) , que es equivalente a s | t s | t , podrías intentar

>>> from itertools import chain >>> set(chain(s,t)) set([1, 2, 3, 4, 5, 6])

O, si quieres una comprensión,

>>> {i for j in (s,t) for i in j} set([1, 2, 3, 4, 5, 6])

Suponga que S y T son 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 | ?


Perdón, ¿por qué no podemos usar el operador join nuevamente?

>>> set([1,2,3]) | set([4,5,6]) set([1, 2, 3, 4, 5, 6])


Puede hacer union o simple lista de comprensión

[A.add(_) for _ in B]

A tendría todos los elementos de B


Puede usar or_ alias:

>>> from operator import or_ >>> reduce(or_, [{1, 2, 3, 4}, {3, 4, 5, 6}]) set([1, 2, 3, 4, 5, 6])


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.


Si al unirse quiere decir unión, intente esto:

set(list(s) + list(t))

Es un poco complicado, pero no puedo pensar en un mejor trazador de líneas para hacerlo.


Si está de acuerdo con la modificación del conjunto original (que puede querer hacer en algunos casos), puede usar set.update() :

S.update(T)

El valor de retorno es None , pero S se actualizará para ser la unión de S y T originales.


Supongamos que tiene 2 listas

A = [1,2,3,4] B = [3,4,5,6]

para que pueda encontrar A Unión B como sigue

union = set(A).union(set(B))

también si quieres encontrar intersección y no intersección, haz eso como sigue

intersection = set(A).intersection(set(B)) non_intersection = union - intersection