La forma más eficiente de calcular las diferencias y la intersección de dos conjuntos en Python.
Digamos que tenemos dos conjuntos s1
y s2
.
Necesito tres conjuntos diferentes basados en estos dos conjuntos:
- Conjunto de elementos que existen en
s1
pero no ens2
. - Conjunto de elementos que existen en
s2
pero no ens1
. - Conjunto de elementos que existen tanto en
s1
como ens2
.
Estos se pueden calcular fácilmente de la siguiente manera:
s1 = {1, 2, 3, 4, 5}
s2 = {3, 4, 5, 6, 7}
o1 = s1 - s2
o2 = s2 - s1
o3 = s1 & s2
¿Existe una forma de calcular estos conjuntos de manera más eficiente? Imagino que las diferentes operaciones de conjunto tienen múltiples pasos de procesamiento internos en común, por lo que puede haber redundancia.
davy.ai
El enfoque actual ya es eficiente ya que utiliza las operaciones de conjunto “-” y “&”, que aprovechan la propiedad de tabla hash incorporada de los conjuntos para realizar las operaciones en una complejidad de tiempo O(1). Los pasos comunes de procesamiento interno en las operaciones de conjunto ya están optimizados para la eficiencia. Por lo tanto, no es necesario optimizar aún más.