Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> python

Conjuntos de Python

Conjuntos de Python

En este tutorial, aprenderá todo sobre los conjuntos de Python; cómo se crean, agregando o eliminando elementos de ellos, y todas las operaciones realizadas en conjuntos en Python.

Video:Conjuntos en Python

Un conjunto es una colección desordenada de elementos. Cada elemento del conjunto es único (sin duplicados) y debe ser inmutable (no se puede cambiar).

Sin embargo, un conjunto en sí mismo es mutable. Podemos agregar o eliminar elementos de él.

Los conjuntos también se pueden usar para realizar operaciones matemáticas de conjuntos como unión, intersección, diferencia simétrica, etc.


Creación de conjuntos de Python

Un conjunto se crea colocando todos los elementos (elementos) dentro de llaves {} , separados por comas, o usando el set() integrado función.

Puede tener cualquier número de elementos y pueden ser de diferentes tipos (entero, flotante, tupla, cadena, etc.). Pero un conjunto no puede tener elementos mutables como listas, conjuntos o diccionarios como elementos.

# Different types of sets in Python
# set of integers
my_set = {1, 2, 3}
print(my_set)

# set of mixed datatypes
my_set = {1.0, "Hello", (1, 2, 3)}
print(my_set)

Salida

{1, 2, 3}
{1.0, (1, 2, 3), 'Hello'}

Pruebe también los siguientes ejemplos.

# set cannot have duplicates
# Output: {1, 2, 3, 4}
my_set = {1, 2, 3, 4, 3, 2}
print(my_set)

# we can make set from a list
# Output: {1, 2, 3}
my_set = set([1, 2, 3, 2])
print(my_set)

# set cannot have mutable items
# here [3, 4] is a mutable list
# this will cause an error.

my_set = {1, 2, [3, 4]}

Salida

{1, 2, 3, 4}
{1, 2, 3}
Traceback (most recent call last):
  File "<string>", line 15, in <module>
    my_set = {1, 2, [3, 4]}
TypeError: unhashable type: 'list'

Crear un conjunto vacío es un poco complicado.

Llaves vacías {} hará un diccionario vacío en Python. Para hacer un conjunto sin ningún elemento, usamos el set() función sin ningún argumento.

# Distinguish set and dictionary while creating empty set

# initialize a with {}
a = {}

# check data type of a
print(type(a))

# initialize a with set()
a = set()

# check data type of a
print(type(a))

Salida

<class 'dict'>
<class 'set'>

Modificar un conjunto en Python

Los conjuntos son mutables. Sin embargo, dado que no están ordenados, la indexación no tiene sentido.

No podemos acceder o cambiar un elemento de un conjunto mediante la indexación o el corte. Establecer tipo de datos no lo admite.

Podemos agregar un solo elemento usando el add() método y múltiples elementos usando el update() método. El update() El método puede tomar tuplas, listas, cadenas u otros conjuntos como argumento. En todos los casos se evitan los duplicados.

# initialize my_set
my_set = {1, 3}
print(my_set)

# my_set[0]
# if you uncomment the above line
# you will get an error
# TypeError: 'set' object does not support indexing

# add an element
# Output: {1, 2, 3}
my_set.add(2)
print(my_set)

# add multiple elements
# Output: {1, 2, 3, 4}
my_set.update([2, 3, 4])
print(my_set)

# add list and set
# Output: {1, 2, 3, 4, 5, 6, 8}
my_set.update([4, 5], {1, 6, 8})
print(my_set)

Salida

{1, 3}
{1, 2, 3}
{1, 2, 3, 4}
{1, 2, 3, 4, 5, 6, 8}

Eliminar elementos de un conjunto

Un artículo en particular se puede eliminar de un conjunto usando los métodos discard() y remove() .

La única diferencia entre los dos es que el discard() La función deja un conjunto sin cambios si el elemento no está presente en el conjunto. Por otro lado, el remove() La función generará un error en tal condición (si el elemento no está presente en el conjunto).

El siguiente ejemplo ilustrará esto.

# Difference between discard() and remove()

# initialize my_set
my_set = {1, 3, 4, 5, 6}
print(my_set)

# discard an element
# Output: {1, 3, 5, 6}
my_set.discard(4)
print(my_set)

# remove an element
# Output: {1, 3, 5}
my_set.remove(6)
print(my_set)

# discard an element
# not present in my_set
# Output: {1, 3, 5}
my_set.discard(2)
print(my_set)

# remove an element
# not present in my_set
# you will get an error.
# Output: KeyError

my_set.remove(2)

Salida

{1, 3, 4, 5, 6}
{1, 3, 5, 6}
{1, 3, 5}
{1, 3, 5}
Traceback (most recent call last):
  File "<string>", line 28, in <module>
KeyError: 2

Del mismo modo, podemos eliminar y devolver un artículo usando el pop() método.

Dado que el conjunto es un tipo de datos desordenado, no hay forma de determinar qué elemento aparecerá. Es completamente arbitrario.

También podemos eliminar todos los artículos de un conjunto usando el clear() método.

# initialize my_set
# Output: set of unique elements
my_set = set("HelloWorld")
print(my_set)

# pop an element
# Output: random element
print(my_set.pop())

# pop another element
my_set.pop()
print(my_set)

# clear my_set
# Output: set()
my_set.clear()
print(my_set)

print(my_set)

Salida

{'H', 'l', 'r', 'W', 'o', 'd', 'e'}
H
{'r', 'W', 'o', 'd', 'e'}
set()

Operaciones de conjunto de Python

Los conjuntos se pueden utilizar para realizar operaciones matemáticas de conjuntos como unión, intersección, diferencia y diferencia simétrica. Podemos hacer esto con operadores o métodos.

Consideremos los siguientes dos conjuntos para las siguientes operaciones.

>>> A = {1, 2, 3, 4, 5}
>>> B = {4, 5, 6, 7, 8}

Establecer Unión

Unión de A y B es un conjunto de todos los elementos de ambos conjuntos.

La unión se realiza usando | operador. Lo mismo se puede lograr usando el union() método.

# Set union method
# initialize A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# use | operator
# Output: {1, 2, 3, 4, 5, 6, 7, 8}
print(A | B)

Salida

{1, 2, 3, 4, 5, 6, 7, 8}

Pruebe los siguientes ejemplos en Python shell.

# use union function
>>> A.union(B)
{1, 2, 3, 4, 5, 6, 7, 8}

# use union function on B
>>> B.union(A)
{1, 2, 3, 4, 5, 6, 7, 8}

Establecer intersección

Intersección de A y B es un conjunto de elementos que son comunes en ambos conjuntos.

La intersección se realiza usando & operador. Lo mismo se puede lograr usando el intersection() método.

# Intersection of sets
# initialize A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# use & operator
# Output: {4, 5}
print(A & B)

Salida

{4, 5}

Pruebe los siguientes ejemplos en Python shell.

# use intersection function on A
>>> A.intersection(B)
{4, 5}

# use intersection function on B
>>> B.intersection(A)
{4, 5}

Establecer diferencia

Diferencia del conjunto B del conjunto A (A - B ) es un conjunto de elementos que solo están en A pero no en B . Del mismo modo, B - A es un conjunto de elementos en B pero no en A .

La diferencia se realiza usando - operador. Lo mismo se puede lograr usando el difference() método.

# Difference of two sets
# initialize A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# use - operator on A
# Output: {1, 2, 3}
print(A - B)

Salida

{1, 2, 3}

Pruebe los siguientes ejemplos en Python shell.

# use difference function on A
>>> A.difference(B)
{1, 2, 3}

# use - operator on B
>>> B - A
{8, 6, 7}

# use difference function on B
>>> B.difference(A)
{8, 6, 7}

Establecer diferencia simétrica

Diferencia simétrica de A y B es un conjunto de elementos en A y B pero no en ambos (excluyendo la intersección).

La diferencia simétrica se realiza usando ^ operador. Lo mismo se puede lograr usando el método symmetric_difference() .

# Symmetric difference of two sets
# initialize A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# use ^ operator
# Output: {1, 2, 3, 6, 7, 8}
print(A ^ B)

Salida

{1, 2, 3, 6, 7, 8}

Pruebe los siguientes ejemplos en Python shell.

# use symmetric_difference function on A
>>> A.symmetric_difference(B)
{1, 2, 3, 6, 7, 8}

# use symmetric_difference function on B
>>> B.symmetric_difference(A)
{1, 2, 3, 6, 7, 8}

Otros métodos de conjuntos de Python

Hay muchos métodos establecidos, algunos de los cuales ya hemos usado anteriormente. Aquí hay una lista de todos los métodos que están disponibles con los objetos establecidos:

Método Descripción
añadir() Agrega un elemento al conjunto
borrar() Elimina todos los elementos del conjunto
copiar() Devuelve una copia del conjunto
diferencia() Devuelve la diferencia de dos o más conjuntos como un nuevo conjunto
diferencia_actualizar() Elimina todos los elementos de otro conjunto de este conjunto
descartar() Elimina un elemento del conjunto si es un miembro. (No haga nada si el elemento no está en el conjunto)
intersección() Devuelve la intersección de dos conjuntos como un nuevo conjunto
intersección_actualización() Actualiza el conjunto con la intersección de sí mismo y otro
es disjunto() Devuelve True si dos conjuntos tienen una intersección nula
es un subconjunto() Devuelve True si otro conjunto contiene este conjunto
essuperconjunto() Devuelve True si este conjunto contiene otro conjunto
pop() Elimina y devuelve un elemento de conjunto arbitrario. Aumenta KeyError si el conjunto está vacío
eliminar() Elimina un elemento del conjunto. Si el elemento no es miembro, lanza un KeyError
diferencia_simétrica() Devuelve la diferencia simétrica de dos conjuntos como un nuevo conjunto
diferencia_simétrica_actualización() Actualiza un conjunto con la diferencia simétrica de sí mismo y otro
unión() Devuelve la unión de conjuntos en un nuevo conjunto
actualizar() Actualiza el conjunto con la unión de sí mismo y otros

Otras operaciones de conjuntos

Establecer prueba de membresía

Podemos probar si un artículo existe en un conjunto o no, usando el in palabra clave.

# in keyword in a set
# initialize my_set
my_set = set("apple")

# check if 'a' is present
# Output: True
print('a' in my_set)

# check if 'p' is present
# Output: False
print('p' not in my_set)

Salida

True
False

Iterando a través de un conjunto

Podemos iterar a través de cada elemento en un conjunto usando un for bucle.

>>> for letter in set("apple"):
...     print(letter)
...    
a
p
e
l

Funciones integradas con Set

Funciones integradas como all() , any() , enumerate() , len() , max() , min() , sorted() , sum() etc. se usan comúnmente con conjuntos para realizar diferentes tareas.

Función Descripción
todos() Devuelve True si todos los elementos del conjunto son verdaderos (o si el conjunto está vacío).
cualquiera() Devuelve True si algún elemento del conjunto es verdadero. Si el conjunto está vacío, devuelve False .
enumerar() Devuelve un objeto enumerado. Contiene el índice y el valor de todos los elementos del conjunto como un par.
largo() Devuelve la longitud (el número de elementos) en el conjunto.
máximo() Devuelve el elemento más grande del conjunto.
mín() Devuelve el elemento más pequeño del conjunto.
ordenado() Devuelve una nueva lista ordenada de elementos en el conjunto (no ordena el conjunto en sí).
suma() Devuelve la suma de todos los elementos del conjunto.

Python Congelado

Frozenset es una nueva clase que tiene las características de un conjunto, pero sus elementos no se pueden cambiar una vez asignados. Mientras que las tuplas son listas inmutables, los conjuntos congelados son conjuntos inmutables.

Los conjuntos que son mutables no se pueden modificar, por lo que no se pueden usar como claves de diccionario. Por otro lado, los conjuntos congelados se pueden modificar y se pueden usar como claves para un diccionario.

Los conjuntos congelados se pueden crear usando la función frozenset().

Este tipo de datos admite métodos como copy() , difference() , intersection() , isdisjoint() , issubset() , issuperset() , symmetric_difference() y union() . Al ser inmutable, no tiene métodos que agreguen o eliminen elementos.

# Frozensets
# initialize A and B
A = frozenset([1, 2, 3, 4])
B = frozenset([3, 4, 5, 6])

Pruebe estos ejemplos en el shell de Python.

>>> A.isdisjoint(B)
False
>>> A.difference(B)
frozenset({1, 2})
>>> A | B
frozenset({1, 2, 3, 4, 5, 6})
>>> A.add(3)
...
AttributeError: 'frozenset' object has no attribute 'add'

python

  1. Tipos de datos de Python
  2. Operadores de Python
  3. Declaración de paso de Python
  4. Argumentos de la función de Python
  5. Diccionario de Python
  6. Iteradores de Python
  7. Cierres Python
  8. Fecha y hora de Python
  9. Python - Descripción general
  10. Pitón - Números
  11. Python - Cadenas