set

Denuncia un problema Ver fuente Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Experimental: Esta API es experimental y puede cambiar en cualquier momento. No dependas de ello. Se puede habilitar de forma experimental configurando --experimental_enable_starlark_set.

El tipo de conjunto mutable integrado. Ejemplos de expresiones de conjunto:

x = set()           # x is an empty set
y = set([1, 2, 3])  # y is a set with 3 elements
3 in y              # True
0 in y              # False
len(x)              # 0
len(y)              # 3

Un conjunto que se usa en el contexto booleano es verdadero solo si no está vacío.

s = set()
"non-empty" if s else "empty"  # "empty"
t = set(["x", "y"])
"non-empty" if t else "empty"  # "non-empty"

Los elementos de un conjunto deben poder generar un hash. x puede ser un elemento de un conjunto solo si x se puede usar como clave de un diccionario.

Un conjunto en sí no se puede convertir en hash. Por lo tanto, no puedes tener un conjunto con otro conjunto como elemento.

No puedes acceder a los elementos de un conjunto por índice, pero puedes iterar sobre ellos y obtener la lista de los elementos de un conjunto en orden de iteración con la función integrada list(). Al igual que con las listas, es un error mutar un conjunto mientras se itera. El orden de iteración coincide con el orden de inserción:

s = set([3, 1, 3])
s.add(2)
# prints 3, 1, 2
for item in s:
    print(item)
list(s)  # [3, 1, 2]

Un conjunto s es igual a t solo si t es un conjunto que contiene los mismos elementos, posiblemente con un orden de iteración diferente. En particular, un conjunto es not igual a su lista de elementos.

Los conjuntos no están ordenados. Las operaciones <, <=, > y >= no están definidas para los conjuntos, y no se puede ordenar una lista de conjuntos, a diferencia de lo que sucede en Python.

La operación | en dos conjuntos muestra la unión de los dos conjuntos: un conjunto que contiene los elementos que se encuentran en uno o ambos conjuntos originales. La operación | tiene una versión de asignación aumentada. s |= t agrega a s todos los elementos de t.

set([1, 2]) | set([3, 2])  # set([1, 2, 3])
s = set([1, 2])
s |= set([2, 3, 4])        # s now equals set([1, 2, 3, 4])

La operación & en dos conjuntos muestra la intersección de los dos conjuntos: un conjunto que solo contiene los elementos que se encuentran en ambos conjuntos originales. La operación & tiene una versión de asignación aumentada. s &= t quita de s todos los elementos que no se encuentran en t.

set([1, 2]) & set([2, 3])  # set([2])
set([1, 2]) & set([3, 4])  # set()
s = set([1, 2])
s &= set([0, 1])           # s now equals set([1])

La operación - en dos conjuntos muestra la diferencia entre los dos conjuntos: un conjunto que contiene los elementos que se encuentran en el conjunto de la izquierda, pero no en el de la derecha. La operación - tiene una versión de asignación aumentada. s -= t quita de s todos los elementos que se encuentran en t.

set([1, 2]) - set([2, 3])  # set([1])
set([1, 2]) - set([3, 4])  # set([1, 2])
s = set([1, 2])
s -= set([0, 1])           # s now equals set([2])

La operación ^ en dos conjuntos muestra la diferencia simétrica de los dos conjuntos: un conjunto que contiene los elementos que se encuentran en exactamente uno de los dos conjuntos originales, pero no en ambos. La operación ^ tiene una versión de asignación aumentada. s ^= t quita de s cualquier elemento de t que se encuentre en s y agrega a s cualquier elemento de t que no se encuentre en s.

set([1, 2]) ^ set([2, 3])  # set([1, 3])
set([1, 2]) ^ set([3, 4])  # set([1, 2, 3, 4])
s = set([1, 2])
s ^= set([0, 1])           # s now equals set([2, 0])

Miembros

add

None set.add(element)

Agrega un elemento al conjunto.

Parámetros

Parámetro Descripción
element required
Elemento que se agregará.

borrar

None set.clear()

Quita todos los elementos del conjunto.

diferencia

set set.difference(*others)

Muestra un nuevo conjunto mutable que contiene la diferencia entre este conjunto y otros.

Por ejemplo,

set([1, 2, 3]).intersection([1, 2], [2, 3]) == set([2])

Parámetros

Parámetro Descripción
others obligatorio
Conjuntos, secuencias o diccionarios.

difference_update

None set.difference_update(*others)

Quita todos los elementos que se encuentren en otros conjuntos de este conjunto.

Por ejemplo,

x = set([1, 2, 3, 4])
x.difference_update([2, 3], [3, 4])
# x is now set([1])

Parámetros

Parámetro Descripción
others obligatorio
Conjuntos, secuencias o diccionarios.

descartar

None set.discard(element)

Quita un elemento del conjunto si está presente.

Parámetros

Parámetro Descripción
element obligatorio
Elemento que se descartará.

intersección

set set.intersection(*others)

Muestra un nuevo conjunto mutable que contiene la intersección de este conjunto con otros.

Por ejemplo,

set([1, 2, 3]).intersection([1, 2], [2, 3]) == set([2])

Parámetros

Parámetro Descripción
others obligatorio
Conjuntos, secuencias o diccionarios.

intersection_update

None set.intersection_update(*others)

Quita de este conjunto los elementos que no se encuentren en los demás.

Por ejemplo,

x = set([1, 2, 3, 4])
x.intersection_update([2, 3], [3, 4])
# x is now set([3])

Parámetros

Parámetro Descripción
others obligatorio
Conjuntos, secuencias o diccionarios.

isdisjoint

bool set.isdisjoint(other)

Muestra true si este conjunto no tiene elementos en común con otro.

Por ejemplo,

set([1, 2]).isdisjoint([3, 4]) == True
set().isdisjoint(set()) == True
set([1, 2]).isdisjoint([2, 3]) == False

Parámetros

Parámetro Descripción
other obligatorio
Un conjunto, una secuencia o un diccionario.

issubset

bool set.issubset(other)

Muestra verdadero si este conjunto es un subconjunto de otro.

Por ejemplo,

set([1, 2]).issubset([1, 2, 3]) == True
set([1, 2]).issubset([1, 2]) == True
set([1, 2]).issubset([2, 3]) == False

Parámetros

Parámetro Descripción
other obligatorio
Un conjunto, una secuencia o un diccionario.

issuperset

bool set.issuperset(other)

Muestra verdadero si este conjunto es un superconjunto de otro.

Por ejemplo,

set([1, 2, 3]).issuperset([1, 2]) == True
set([1, 2, 3]).issuperset([1, 2, 3]) == True
set([1, 2, 3]).issuperset([2, 3, 4]) == False

Parámetros

Parámetro Descripción
other obligatorio
Un conjunto, una secuencia o un diccionario.

pop

unknown set.pop()

Quita y muestra el primer elemento del conjunto. Falla si el conjunto está vacío.

quitar

None set.remove(element)

Quita un elemento, que debe estar presente en el conjunto, del conjunto. Falla si el elemento no estaba presente en el conjunto.

Parámetros

Parámetro Descripción
element obligatorio
Elemento que se quitará.

symmetric_difference

set set.symmetric_difference(other)

Muestra un nuevo conjunto mutable que contiene la diferencia simétrica de este conjunto con otro conjunto, secuencia o diccionario.

Por ejemplo,

set([1, 2, 3]).symmetric_difference([2, 3, 4]) == set([1, 4])

Parámetros

Parámetro Descripción
other obligatorio
Un conjunto, una secuencia o un diccionario.

symmetric_difference_update

None set.symmetric_difference_update(other)

Muestra un nuevo conjunto mutable que contiene la diferencia simétrica de este conjunto con otro conjunto, secuencia o diccionario.

Por ejemplo,

set([1, 2, 3]).symmetric_difference([2, 3, 4]) == set([1, 4])

Parámetros

Parámetro Descripción
other obligatorio
Un conjunto, una secuencia o un diccionario.

unión

set set.union(*others)

Muestra un nuevo conjunto mutable que contiene la unión de este conjunto con otros.

Por ejemplo,

set([1, 2]).union([2, 3, 4], [4, 5]) == set([1, 2, 3, 4, 5])

Parámetros

Parámetro Descripción
others obligatorio
Conjuntos, secuencias o diccionarios.

update

None set.update(*others)

Agrega los elementos que se encuentran en otros a este conjunto.

Por ejemplo,

x = set([1, 2])
x.update([2, 3], [3, 4])
# x is now set([1, 2, 3, 4])

Parámetros

Parámetro Descripción
others obligatorio
Conjuntos, secuencias o diccionarios.