Conjuntos de Python3
Un conjunto (set) es una secuencia de elementos únicos y desordenados.
Los elementos de un conjunto no se repiten, y se pueden realizar operaciones comunes de conjuntos como intersección, unión y diferencia.
Puedes usar llaves{ }para crear un conjunto, con comas entre los elementos,para separarlos, o también puedes usarset()la función para crear un conjunto.
Formato de creación:
parame = {value01,value02,...}
或者
set(value)
El siguiente es un ejemplo sencillo:
set1 = {1, 2, 3, 4} # 直接使用大括号创建集合
set2 = set([4, 5, 6, 7]) # 使用 set() 函数从列表创建集合
Nota:Para crear un conjunto vacío, debes usar set()en lugar de{ }, porque{ }se usa para crear un diccionario vacío.
Más ejemplos de demostración:
Ejemplo (Python 3.0+)
>>> print(basket) # Aquí se demuestra la función de eliminar duplicados
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket # Determina rápidamente si el elemento está en el conjunto
True
>>> 'crabgrass' in basket
False
>>> # A continuación se muestran las operaciones entre dos conjuntos.
...
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a
{'a', 'r', 'b', 'c', 'd'}
>>> a - b # Elementos contenidos en el conjunto a pero no en el conjunto b
{'r', 'd', 'b'}
>>> a | b # Todos los elementos contenidos en el conjunto a o b
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b # Elementos contenidos tanto en el conjunto a como en el b
{'a', 'c'}
>>> a ^ b # Elementos que no están contenidos simultáneamente en a y b
{'r', 'd', 'b', 'm', 'z', 'l'}
Al igual que la comprensión de listas, los conjuntos también admiten la comprensión de conjuntos (Set comprehension):
Ejemplo (Python 3.0+)
>>> a
{'r', 'd'}
Operaciones básicas de conjuntos
1. Agregar elementos
El formato de sintaxis es el siguiente:
s.add( x )
Agrega el elemento x al conjunto s; si el elemento ya existe, no realiza ninguna operación.
Ejemplo (Python 3.0+)
>>> thisset.add("Facebook")
>>> print(thisset)
{'Taobao', 'Facebook', 'Google', 'Ejemplo'}
Hay otro método que también puede agregar elementos, y el parámetro puede ser una lista, tupla, diccionario, etc. El formato de sintaxis es el siguiente:
s.update( x )
Puede haber varios x, separados por comas.
Ejemplo (Python 3.0+)
>>> thisset.update({1,3})
>>> print(thisset)
{1, 3, 'Google', 'Taobao', 'Ejemplo'}
>>> thisset.update([1,4],[5,6])
>>> print(thisset)
{1, 3, 4, 5, 6, 'Google', 'Taobao', 'Ejemplo'}
>>>
2. Eliminar elementos
El formato de sintaxis es el siguiente:
s.remove( x )
Elimina el elemento x del conjunto s; si el elemento no existe, se producirá un error.
Ejemplo (Python 3.0+)
>>> thisset.remove("Taobao")
>>> print(thisset)
{'Google', 'Ejemplo'}
>>> thisset.remove("Facebook") # Si no existe, se producirá un error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'Facebook'
>>>
Además, hay otro método que también elimina elementos del conjunto y, si el elemento no existe, no se produce ningún error. El formato es el siguiente:
s.discard( x )
Ejemplo (Python 3.0+)
>>> thisset.discard("Facebook") # Si no existe, no se producirá un error
>>> print(thisset)
{'Taobao', 'Google', 'Ejemplo'}
También podemos configurar la eliminación aleatoria de un elemento del conjunto. El formato de sintaxis es el siguiente:
s.pop()
Ejemplo en modo script (Python 3.0+)
x = thisset.pop()
print(x)
Resultado de salida:
Ejemplo
Los resultados de la prueba son diferentes en cada ejecución.
El método pop del conjunto set ordena el conjunto de manera desordenada y luego elimina el primer elemento por la izquierda de ese conjunto desordenado.
3. Contar el número de elementos del conjunto
El formato de sintaxis es el siguiente:
len(s)
Cuenta el número de elementos del conjunto s.
Ejemplo (Python 3.0+)
>>> len(thisset)
3
4. Vaciar el conjunto
El formato de sintaxis es el siguiente:
s.clear()
Vacía el conjunto s.
Ejemplo (Python 3.0+)
>>> thisset.clear()
>>> print(thisset)
set()
5. Determinar si el elemento existe en el conjunto
El formato de sintaxis es el siguiente:
x in s
Determina si el elemento x está en el conjunto s; si existe, devuelve True; si no, devuelve False.
Ejemplo (Python 3.0+)
>>> "Ejemplo" in thisset
True
>>> "Facebook" in thisset
False
>>>
Lista completa de métodos integrados de conjuntos
| Método | Descripción |
|---|---|
| add() | Agrega un elemento al conjunto |
| clear() | Elimina todos los elementos del conjunto |
| copy() | Copia un conjunto |
| difference() | Devuelve la diferencia de varios conjuntos |
| difference_update() | Elimina del conjunto el elemento que también existe en el conjunto especificado. |
| discard() | Elimina el elemento especificado del conjunto |
| intersection() | Devuelve la intersección de los conjuntos |
| intersection_update() | Devuelve la intersección de los conjuntos. |
| isdisjoint() | Determina si dos conjuntos contienen los mismos elementos; si no, devuelve True; de lo contrario, devuelve False. |
| issubset() | Determina si el conjunto especificado es un subconjunto del conjunto pasado como parámetro de este método. |
| issuperset() | Determina si el conjunto pasado como parámetro de este método es un subconjunto del conjunto especificado. |
| pop() | Elimina aleatoriamente un elemento |
| remove() | Elimina el elemento especificado |
| symmetric_difference() | Devuelve el conjunto de elementos no repetidos de los dos conjuntos. |
| symmetric_difference_update() | Elimina del conjunto actual los elementos que también existen en otro conjunto especificado, e inserta en el conjunto actual los elementos de ese otro conjunto especificado que no existen en el conjunto actual. |
| union() | Devuelve la unión de dos conjuntos |
| update() | Agrega elementos al conjunto |
| len() | Cuenta el número de elementos del conjunto |