Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Python

Ensembles Python

Ensembles Python

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 non ordonnée d'éléments. 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 mutable. Nous pouvons y ajouter ou en supprimer des éléments.

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

Création d'ensembles Python

Un ensemble est créé en plaçant tous les éléments (éléments) à l'intérieur d'accolades {} , séparés par une virgule, ou en utilisant le set() intégré fonction.

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 modifiables comme 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)

Sortie

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

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]}

Sortie

{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'

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

Accolades vides {} créera un dictionnaire vide en Python. Pour faire un ensemble sans aucun élément, on utilise le set() fonction sans 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))

Sortie

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

Modifier un ensemble en Python

Les ensembles sont modifiables. 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 le add() méthode et plusieurs éléments utilisant le update() méthode. Le update() 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)

Sortie

{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 en utilisant les méthodes discard() et remove() .

La seule différence entre les deux est que le discard() La fonction laisse un ensemble inchangé si l'élément n'est pas présent dans l'ensemble. En revanche, le remove() la 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)

Sortie

{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

De même, nous pouvons retirer et retourner un article en utilisant le pop() méthode.

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

On peut aussi supprimer tous les éléments d'un ensemble en utilisant le 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)

Sortie

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

Opérations sur les ensembles Python

Les ensembles peuvent être utilisés pour effectuer des opérations mathématiques sur les ensembles 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

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

L'union est effectuée en utilisant | opérateur. La même chose peut être accomplie en utilisant le 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)

Sortie

{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

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

L'intersection est effectuée en utilisant & opérateur. La même chose peut être accomplie en utilisant le 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)

Sortie

{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

Différence de l'ensemble B de l'ensemble A (A - B ) est un ensemble d'éléments qui ne sont que dans A mais pas en B . De même, B - A est un ensemble d'éléments dans B mais pas en A .

La différence est effectuée en utilisant - opérateur. La même chose peut être accomplie en utilisant le 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)

Sortie

{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

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

La différence symétrique est effectuée en utilisant ^ 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)

Sortie

{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

Il existe de nombreuses méthodes d'ensemble, dont certaines que nous avons déjà utilisées ci-dessus. Voici une liste de toutes les méthodes disponibles avec les objets définis :

Méthode Description
ajouter() Ajoute un élément à l'ensemble
effacer() Supprime tous les éléments de l'ensemble
copier() Renvoie une copie de l'ensemble
différence() Renvoie la différence de deux ensembles ou plus sous la forme d'un nouvel ensemble
différence_update() Supprime tous les éléments d'un autre ensemble de cet ensemble
jeter() Supprime un élément de l'ensemble s'il en est un membre. (Ne rien faire si l'élément n'est pas dans l'ensemble)
intersection() Renvoie l'intersection de deux ensembles comme un nouvel ensemble
intersection_update() Met à jour l'ensemble avec l'intersection de lui-même et d'un autre
estdisjoint() Renvoie True si deux ensembles ont une intersection nulle
issuebset() Renvoie True si un autre ensemble contient cet ensemble
estsuperset() Renvoie True si cet ensemble en contient un autre
pop() Supprime et renvoie un élément d'ensemble arbitraire. Augmente KeyError si l'ensemble est vide
supprimer() Supprime un élément de l'ensemble. Si l'élément n'est pas membre, lève un KeyError
symmetric_difference() Renvoie la différence symétrique de deux ensembles comme un nouvel ensemble
symmetric_difference_update() Met à jour un ensemble avec la différence symétrique de lui-même et d'un autre
union() Renvoie l'union des ensembles dans un nouvel ensemble
mise à jour() Met à jour l'ensemble avec l'union de lui-même et des autres

Autres opérations d'ensemble

Définir le test d'adhésion

Nous pouvons tester si un élément existe dans un ensemble ou non, en utilisant le in mot-clé.

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

Sortie

True
False

Itérer dans un ensemble

Nous pouvons parcourir chaque élément d'un ensemble en utilisant un for boucle.

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

Fonctions intégrées avec Set

Fonctions intégrées comme all() , any() , enumerate() , len() , max() , min() , sorted() , sum() etc. sont couramment utilisés avec des ensembles pour effectuer différentes tâches.

Fonction Description
tous() Renvoie True si tous les éléments de l'ensemble sont vrais (ou si l'ensemble est vide).
tout() Renvoie True si un élément de l'ensemble est vrai. Si l'ensemble est vide, renvoie False .
énumérer() Retourne un objet d'énumération. Il contient l'index et la valeur de tous les éléments de l'ensemble sous forme de paire.
len() Renvoie la longueur (le nombre d'éléments) dans l'ensemble.
max() Renvoie l'élément le plus grand de l'ensemble.
min() Renvoie le plus petit élément de l'ensemble.
trié() Renvoie une nouvelle liste triée à partir des éléments de l'ensemble (ne trie pas l'ensemble lui-même).
somme() Renvoie la somme de tous les éléments de l'ensemble.

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 attribués. Alors que les tuples sont des listes immuables, les frozensets sont des ensembles immuables.

Les ensembles modifiables ne peuvent pas être haché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 ensembles gelés peuvent être créés à l'aide de la fonction frozenset().

Ce type de données prend en charge des méthodes telles que 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'

Python

  1. Types de données Python
  2. Opérateurs Python
  3. Instruction de passe Python
  4. Arguments de la fonction Python
  5. Dictionnaire Python
  6. Itérateurs Python
  7. Fermetures Python
  8. Date-heure Python
  9. Python - Présentation