Tutoriel Python - Jeu de types de données

  1. Créer des ensembles Python
  2. Mise à jour de l’ensemble Python
  3. Retirer des éléments d’un jeu Python
  4. Opérations sur les sets Python
  5. Méthodes d’ensembles Python
  6. Autres opérations sur les jeux Python
  7. Fonctions intégrées au set Python
  8. Python Frozenset

Dans cette section, vous apprendrez comment créer des ensembles en Python et comment ajouter et supprimer des éléments des ensembles.

Un set contient des éléments uniques et est une liste d’éléments non ordonnés.

Info

set est un objet mutable qui permet d’ajouter et de supprimer des éléments d’un set.

Créer des ensembles Python

Un ensemble en Python peut être créé en utilisant des accolades {} et les éléments sont séparés par des virgules. Vous pouvez aussi créer un ensemble en utilisant la méthode intégrée set().

Les éléments d’un ensemble peuvent être de différents types de données. Les éléments d’un ensemble doivent être immuables. Par exemple, vous pouvez avoir un tuple comme élément de l’ensemble mais vous ne pouvez pas avoir un ensemble ou un dictionnaire ou une liste comme éléments de l’ensemble.

>>> x = {3, 5, 7, 2, 4, 5}		
>>> print(x)		#prints the set variable
{2, 3, 4, 5, 7}
>>> print(type(x))		#checking type of x
<class 'set'>

Vous pouvez utiliser la méthode set() avec des paramètres vides pour créer une liste vide. Si vous écrivez {} pour créer un objet vide, il est interprété comme un dictionnaire:

>>> x = {}
>>> print(type(x))
<class 'dict'>

>>> x = set()
>>> print(type(x))
<class 'set'>

Mise à jour de l’ensemble Python

L’indexation et le découpage ne peuvent pas être utilisés pour changer les éléments d’un ensemble car set n’est pas un type de données ordonné.

Un seul élément peut être ajouté dans un ensemble en utilisant la méthode add(). Si vous voulez ajouter plus d’un élément dans l’ensemble, alors vous devez utiliser la méthode update().

>>> s = {2, 4}
>>> print(s)
{2, 4}

>>> s.add(6)
>>> print(s)
{2, 4, 6}

>>> s.update([2, 4, 6])
>>> print(s)
{2, 4, 6}

>>> s.update([5,6], {7, 8, 9})
>>> print(s)
{2, 4, 5, 6, 7, 8, 9}

Retirer des éléments d’un jeu Python

Pour retirer un élément d’un ensemble, vous pouvez utiliser la méthode discard() ou la méthode remove().

La différence entre ces méthodes est que la méthode discard() ne demandera rien si l’élément à supprimer n’est pas dans l’ensemble tandis que la méthode remove() générera une erreur si l’élément à supprimer n’est pas trouvé.

>>> s = {2, 4, 5, 6, 7, 8, 9}
>>> print(s)
{2, 4, 5, 6, 7, 8, 9}

>>> s.discard(6)
>>> print(s)
{2, 4, 5, 7, 8, 9}

>>> s.remove(8)
>>> print(s)
{2, 4, 5, 7, 9}

>>> s.discard(6)		#no error
>>> s.remove(8)			#generated an error
Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    s.remove(8)
KeyError: 8

Vous pouvez aussi utiliser pop() pour supprimer un élément d’un ensemble. pop() supprime et retourne un élément d’un ensemble arbitraire.

>>> s = set("Python")
>>> s
{'o', 'n', 'h', 'P', 'y', 't'}
>>> s.pop()
o
>>> s.pop()
n
>>> s
{'h', 'P', 'y', 't'}
>>> s.clear()
>>> print(s)
set()

Vous pouvez utiliser la méthode set clear() pour effacer tous les éléments d’un set.

>>> s = set("Python")
>>> s.clear()
>>> s
set()

Opérations sur les sets Python

Vous pouvez effectuer des opérations telles que union, intersection, différence, et différence_symétrique.

Supposons que vous ayez deux ensembles x et y:

>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 10, 11, 12}

Union

L’union de deux ensembles donne lieu à un nouvel ensemble contenant tous les éléments des deux ensembles.

Pour effectuer l’opération d’union, vous pouvez utiliser soit l’opérateur | soit la méthode union().

>>> print(x | y)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}

#using union() method on x
>>> x.union(y)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
#union on y
>>> y.union(x)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}

Intersection d’ensembles Python

L’intersection de deux ensembles donne lieu à un nouvel ensemble contenant les éléments communs aux deux ensembles.

Pour effectuer l’opération d’intersection, vous pouvez utiliser soit l’opérateur & soit la méthode intersection().

>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x & y)
{1, 2, 6}

#using intersection() method on x
>>> x.intersection(y)
{1, 2, 6}
#intersection on y
>>> y.intersection(x)
{1, 2, 6}

Différence entre les ensembles Python

La différence entre deux ensembles donne lieu à un nouvel ensemble qui contient des éléments du premier ensemble qui ne sont pas présents dans le deuxième ensemble.

Par exemple, x - y est un élément de x qui n’est pas dans y. De même, y - x est un élément de y qui n’est pas dans x.

Pour effectuer la différence, vous pouvez utiliser soit l’opérateur - soit la méthode difference().

>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x - y)
{3, 4, 5}

#using difference() method on x
>>> x.difference(y)
{3, 4, 5}
#diference on y
>>> y.difference(x)
{8, 9, 7}

Python établit une différence symétrique

La différence symétrique de deux ensembles donne lieu à un nouvel ensemble qui contient des éléments qui ne sont pas communs aux deux ensembles.

Pour effectuer une différence symétrique, vous pouvez utiliser soit l’opérateur ^ soit la méthode symmetric_difference().

>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x ^ y)
{3, 4, 5, 7, 8, 9}

#using symmetric_difference() method on x
>>> x.symmetric_difference(y)
{3, 4, 5, 7, 8, 9}
#symmetric_diference on y
>>> y.symmetric_difference(x)
{3, 4, 5, 7, 8, 9}

Méthodes d’ensembles Python

Voici la liste des méthodes qui peuvent être appliquées sur des ensembles en Python:

Méthode Description
add() ajouter un élément à un ensemble
clear() effacer les éléments de l’ensemble (efface l’ensemble entier)
copy() retourner la copie d’un ensemble
difference() retourne un nouvel ensemble qui contient des éléments du premier ensemble qui ne sont pas présents dans le second ensemble.
difference_update() supprimer tous les éléments d’un autre ensemble de l’ensemble actuel
discard() retirer un élément spécifique d’un ensemble
intersection() renvoie un nouveau set contenant les éléments communs aux deux sets.
intersection_update() mettre à jour un ensemble avec l’intersection de cet ensemble avec un autre ensemble
isdisjoint() retourne un True quand deux ensembles résultent en une intersection nulle
issubset() retourne un True quand un autre jeu a le jeu courant
issuperset() retourne un True quand le jeu courant a un autre jeu
pop() retourner un élément d’un ensemble
remove() retirer un élément spécifique d’un ensemble. Si l’élément n’est pas dans l’ensemble, une erreur sera générée.
symmetric_difference() renvoie un nouveau jeu qui contient des éléments qui ne sont pas communs aux deux jeux.
symmetric_difference_update() mettre à jour un ensemble avec la différence symétrique de cet ensemble avec un autre ensemble
union() retourne un nouveau jeu contenant tous les éléments des deux jeux.
update() mettre à jour un ensemble avec l’union de cet ensemble avec un autre ensemble

Autres opérations sur les jeux Python

Définir le contrôle des membres

Le mot-clé in teste si un élément est un membre de l’ensemble ou non.

>>> s = set("Blue")
>>> print('o' in s)
False
>>> print('l' in s)
True

Itérer à travers un ensemble

Vous pouvez itérer à travers un ensemble en utilisant la boucle for:

for i in set("Blue"):
    print(i)

Résultat:

B
l
u
e

Fonctions intégrées au set Python

Voici quelques-unes des fonctions intégrées qui peuvent être utilisées avec les ensembles pour effectuer différentes tâches:

Fonctions Description
all() retourne True quand tous les éléments de l’ensemble sont Vrais. Il retourne aussi True quand le jeu est vide.
any() retourne True quand l’un des éléments de l’ensemble est True. Il retourne False quand le jeu est vide.
enumerate() retourne l’index et la valeur de tous les éléments de l’ensemble sous forme de tuple. Il retourne un objet enumerate.
len() retourner le nombre d’éléments d’un ensemble ou la longueur de l’ensemble.
set() définir un ensemble.
max() retourner le maximum d’éléments dans le jeu.
min() retourner l’élément minimum dans le set.
sorted() renvoie une liste triée des éléments d’un ensemble.
sum() retourne la somme de tous les éléments de l’ensemble.

Python Frozenset

Frozenset est un ensemble spécial dont les éléments ne peuvent pas être mis à jour lorsqu’ils sont affectés une fois. Les gelées sont des ensembles immuables.

Comme les ensembles sont mutables, vous ne pouvez pas les utiliser comme clé dans le dictionnaire, mais les ensembles gelés sont immuables, donc vous pouvez utiliser les ensembles gelés comme clés de dictionnaire.

Un ensemble gelé peut être créé en utilisant la méthode frozenset().

Voici quelques-unes des méthodes supportées par frozenset:

  • copy()
  • difference()
  • intersection()
  • isdisjoint()
  • issubset()
  • issuperset()
  • symmetric_difference()
  • union()
>>> x = frozenset([2,6,3,9])
>>> y = frozenset([6,1,2,4])
>>> x.difference(y)
frozenset({9, 3})
comments powered by Disqus