Ensemble Python (avec exemples)

Dans ce didacticiel, vous apprendrez tout sur les ensembles Python; comment ils sont créés, en ajoutant ou en supprimant des éléments et toutes les opérations effectuées sur les ensembles en Python.

Vidéo: Ensembles en Python

Un ensemble est une collection d'articles non ordonnée. Chaque élément de l'ensemble est unique (pas de doublons) et doit être immuable (ne peut pas être modifié).

Cependant, un ensemble lui-même est modifiable. Nous pouvons y ajouter ou supprimer des éléments.

Les ensembles peuvent également être utilisés pour effectuer des opérations d'ensemble mathématiques telles que l'union, l'intersection, la différence symétrique, etc.

Créer des ensembles Python

Un ensemble est créé en plaçant tous les éléments (éléments) entre accolades (), séparés par une virgule, ou en utilisant la set()fonction intégrée.

Il peut avoir n'importe quel nombre d'éléments et ils peuvent être de différents types (entier, flottant, tuple, chaîne, etc.). Mais un ensemble ne peut pas avoir d'éléments mutables tels que des listes, des ensembles ou des dictionnaires comme éléments.

 # 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)

Production

 (1, 2, 3) (1.0, (1, 2, 3), 'Bonjour')

Essayez également les exemples suivants.

 # 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))

Production

 (1, 2, 3, 4) (1, 2, 3) Traceback (dernier appel le plus récent): File "", line 15, in my_set = (1, 2, (3, 4)) TypeError: type unhashable: 'liste'

Créer un ensemble vide est un peu délicat.

Des accolades vides ()créeront un dictionnaire vide en Python. Pour créer un ensemble sans aucun élément, nous utilisons la set()fonction sans aucun argument.

 # 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))

Production

 

Modifier un ensemble en Python

Les ensembles sont mutables. Cependant, comme ils ne sont pas ordonnés, l'indexation n'a aucun sens.

Nous ne pouvons pas accéder ou modifier un élément d'un ensemble en utilisant l'indexation ou le découpage. Le type de données défini ne le prend pas en charge.

Nous pouvons ajouter un seul élément en utilisant la add()méthode et plusieurs éléments en utilisant la update()méthode. La update()méthode peut prendre des tuples, des listes, des chaînes ou d'autres ensembles comme argument. Dans tous les cas, les doublons sont évités.

 # 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)

Production

 (1, 3) (1, 2, 3) (1, 2, 3, 4) (1, 2, 3, 4, 5, 6, 8)

Supprimer des éléments d'un ensemble

Un élément particulier peut être supprimé d'un ensemble à l'aide des méthodes discard()et remove().

La seule différence entre les deux est que la discard()fonction laisse un ensemble inchangé si l'élément n'est pas présent dans l'ensemble. D'autre part, la remove()fonction lèvera une erreur dans une telle condition (si l'élément n'est pas présent dans l'ensemble).

L'exemple suivant illustrera cela.

 # 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)

Production

 (1, 3, 4, 5, 6) (1, 3, 5, 6) (1, 3, 5) (1, 3, 5) Traceback (dernier appel en dernier): fichier "", ligne 28, dans KeyError: 2

De même, nous pouvons supprimer et renvoyer un élément en utilisant la pop()méthode.

Puisque set est un type de données non ordonné, il n'y a aucun moyen de déterminer quel élément sera poppé. C'est complètement arbitraire.

Nous pouvons également supprimer tous les éléments d'un ensemble en utilisant la clear()méthode.

 # 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)

Production

 ('H', 'l', 'r', 'W', 'o', 'd', 'e') H ('r', 'W', 'o', 'd', 'e' ) ensemble()

Opérations d'ensemble Python

Les ensembles peuvent être utilisés pour effectuer des opérations d'ensemble mathématiques telles que l'union, l'intersection, la différence et la différence symétrique. Nous pouvons le faire avec des opérateurs ou des méthodes.

Considérons les deux ensembles suivants pour les opérations suivantes.

 >>> A = (1, 2, 3, 4, 5) >>> B = (4, 5, 6, 7, 8)

Définir l'union

Définir Union en Python

L'union de A et B est un ensemble de tous les éléments des deux ensembles.

L'union est effectuée à l'aide de l' |opérateur. La même chose peut être accomplie en utilisant la union()méthode.

 # 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)

Production

 (1, 2, 3, 4, 5, 6, 7, 8)

Essayez les exemples suivants sur le shell Python.

 # 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)

Définir l'intersection

Définir l'intersection en Python

L'intersection de A et B est un ensemble d'éléments communs aux deux ensembles.

L'intersection est effectuée à l'aide de l' &opérateur. La même chose peut être accomplie en utilisant la intersection()méthode.

 # 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)

Production

 (4, 5)

Essayez les exemples suivants sur le shell Python.

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

Définir la différence

Définir la différence en Python

La différence de l'ensemble B de l'ensemble A (A - B) est un ensemble d'éléments qui sont uniquement dans A mais pas dans B. De même, B - A est un ensemble d'éléments dans B mais pas dans A.

La différence est effectuée à l'aide de l' -opérateur. La même chose peut être accomplie en utilisant la difference()méthode.

 # 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)

Production

 (1, 2, 3)

Essayez les exemples suivants sur le shell Python.

 # 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)

Définir la différence symétrique

Définir la différence symétrique en Python

La différence symétrique de A et B est un ensemble d'éléments dans A et B mais pas dans les deux (à l'exclusion de l'intersection).

La différence symétrique est effectuée à l'aide de l' ^opérateur. La même chose peut être accomplie en utilisant la méthode 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)

Production

 (1, 2, 3, 6, 7, 8)

Essayez les exemples suivants sur le shell Python.

 # 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)

Autres méthodes d'ensemble Python

There are many set methods, some of which we have already used above. Here is a list of all the methods that are available with the set objects:

Method Description
add() Adds an element to the set
clear() Removes all elements from the set
copy() Returns a copy of the set
difference() Returns the difference of two or more sets as a new set
difference_update() Removes all elements of another set from this set
discard() Removes an element from the set if it is a member. (Do nothing if the element is not in set)
intersection() Returns the intersection of two sets as a new set
intersection_update() Updates the set with the intersection of itself and another
isdisjoint() Returns True if two sets have a null intersection
issubset() Returns True if another set contains this set
issuperset() Returns True if this set contains another set
pop() Removes and returns an arbitrary set element. Raises KeyError if the set is empty
remove() Removes an element from the set. If the element is not a member, raises a KeyError
symmetric_difference() Returns the symmetric difference of two sets as a new set
symmetric_difference_update() Updates a set with the symmetric difference of itself and another
union() Returns the union of sets in a new set
update() Updates the set with the union of itself and others

Other Set Operations

Set Membership Test

We can test if an item exists in a set or not, using the in keyword.

 # 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)

Output

 True False

Iterating Through a Set

We can iterate through each item in a set using a for loop.

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

Built-in Functions with Set

Built-in functions like all(), any(), enumerate(), len(), max(), min(), sorted(), sum() etc. are commonly used with sets to perform different tasks.

Function Description
all() Returns True if all elements of the set are true (or if the set is empty).
any() Returns True if any element of the set is true. If the set is empty, returns False.
enumerate() Returns an enumerate object. It contains the index and value for all the items of the set as a pair.
len() Returns the length (the number of items) in the set.
max() Returns the largest item in the set.
min() Returns the smallest item in the set.
sorted() Returns a new sorted list from elements in the set(does not sort the set itself).
sum() Returns the sum of all elements in the set.

Python Frozenset

Frozenset est une nouvelle classe qui a les caractéristiques d'un ensemble, mais ses éléments ne peuvent pas être modifiés une fois affectés. Alors que les tuples sont des listes immuables, les frozensets sont des ensembles immuables.

Les ensembles mutables ne peuvent pas être supprimés, ils ne peuvent donc pas être utilisés comme clés de dictionnaire. D'un autre côté, les frozensets sont hachables et peuvent être utilisés comme clés d'un dictionnaire.

Les Frozensets peuvent être créés à l'aide de la fonction frozenset ().

Ce type de données supports méthodes comme copy(), difference(), intersection(), isdisjoint(), issubset(), issuperset(), symmetric_difference()et union(). Étant immuable, il n'a pas de méthodes qui ajoutent ou suppriment des éléments.

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

Essayez ces exemples sur le shell 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'

Articles intéressants...