OUJOOD.COM
Introduction au type Set de Python
Pour définir un set en Python, vous utilisez l'accolade {}. Par exemple :competence = {"Programmation Python", "Bases de données", "Conception de logiciels"}
Notez qu'un dictionnaire utilise également des accolades, mais ses éléments sont des paires clé-valeur.Pour définir un set vide, vous ne pouvez pas utiliser les accolades comme ceci :
ensemble_vide = {}
Car cela définit un dictionnaire vide.Par conséquent, vous devez utiliser la fonction intégrée set() comme suit:
empty_set = set()
On peut en effet passer un itérable à la fonction set() pour créer un set. Par exemple, vous pouvez passer une liste, qui est un itérable, à la fonction set() comme ceci :competences = set(['Résolution de problèmes', 'Esprit critique']) print(competences)ce code retourne : {'Esprit critique', 'Résolution de problèmes'}
Vous constatez que l'ordre original des éléments peut ne pas être préservé.
Si un itérable comporte des éléments en double, la fonction set() les supprimera. Par exemple :
characters = set( 'lettres') print( characters)Dans cet exemple, la chaîne de caractères "lettres" contient deux caractères e et deux t , la méthode set() les a supprimés.
Comment connaître la taille d'un set ?
Pour obtenir le nombre d'éléments d'un set, vous utilisez la fonction intégrée len().len(set)
Par exemple:
notes = {20, 17, 13, 14, 15}
taille = len(notes)
print(taille)
Comment vérifier si un élément se trouve dans un set ?
Pour vérifier si un set contient un élément, on utilise l'opérateur in :element in set
L'opérateur in renvoie True si le set contient l'élément. Sinon, il renvoie False.
Par exemple:
notes = {20, 17, 13, 14, 15}
note = 17
if note in notes :
print(f"Le set contient l'élément : {note}")
Pour inverser l'opérateur in, on utilise l'opérateur not. not in set
Par exemple :
notes = {20, 17, 13, 14, 15}
note = 19
if note not in notes :
print(f"Le set ne contient pas l'élément : {note}")
Comment ajouter des éléments à un set ?
La méthode add() permet d'ajouter un élément à un set :set.add(élément)
Par exemple :
notes = {20, 17, 13, 14, 15}
notes.add(19)
print(notes)
Supprimer un élément d'un set
Pour supprimer un élément d'un set, on utilise la méthode remove() :set.remove( element)
Par exemple :
notes = {20, 17, 13, 14, 15}
notes.remove(17)
print(notes)
Si on supprime un élément qui n'existe pas dans un set, on obtient une erreur (KeyError). Pour éviter cette erreur, il faut utiliser l'opérateur in pour vérifier si un élément fait partie du set avant de le supprimer :
Par exemple:
notes = {20, 17, 13, 14, 15}
if 19 in notes:
notes.remove(19)
print(notes)
Pour rendre les choses plus pratiques, le set dispose de la méthode discard() qui permet de supprimer un élément. Et elle ne provoque pas d'erreur si l'élément ne se trouve pas dans le set :set.discard(element)
Parexemple:
notes = {20, 17, 13, 14, 15}
notes.discard(19)
print(notes)
supprimer et récupérer un élément d'un set
Pour retirer et renvoyer un élément d'un set, vous utilisez la méthode pop().Puisque les éléments d'un set n'ont pas d'ordre spécifique, la méthode pop() supprime un élément non spécifié d'un set.
Si vous exécutez le code suivant plusieurs fois, il se peut qu'il affichera une valeur différente à chaque fois :
competences = {'Résolution de problèmes', 'Conception de logiciels', 'Programmation Python'}
competence = competences.pop()
print(competence)
Suppression de tous les éléments d'un set
Pour supprimer tous les éléments d'un set, vous utilisez la méthode clear() :set.clear()
Par exemple:
competences = {'Résolution de problèmes', 'Conception de logiciels', 'Programmation Python'}
competences.clear()
print(competences)
Geler un set
Pour rendre un set immuable, on utilise la fonction intégrée appelée frozenset(). La fonction frozenset() retourne un nouveau set invariable à partir d'un set existant.Par exemple:
competences = {'Résolution de problèmes', 'Conception de logiciels', 'Programmation Python'}
competences = frozenset(competences)
Après cela, si vous tentez de modifier des éléments du set, vous obtiendrez une erreur :competences.add('développement java')
Boucle sur les éléments d'un set
Boucle en utilisant for
Un set étant un itérable, vous pouvez utiliser une boucle for pour parcourir ses éléments.Par exemple
competences = {'Résolution de problèmes', 'Conception de logiciels', 'Programmation Python'}
for competences in competences :
print(competences)
Voir plus sur les boucles dans notre tutoriel
Pour accéder à l'index de l'élément actuel à l'intérieur de la boucle, vous pouvez utiliser la fonction intégrée enumerate() :
competences = {'Résolution de problèmes', 'Conception de logiciels', 'Programmation Python'}
for index, competences in enumerate(competences) :
print(f"{index}.{competences}")
Par défaut, l'index commence à zéro. Pour changer cela, vous passez la valeur de départ au deuxième argument de la fonction enumerate().Par exemple :
competences = {'Résolution de problèmes', 'Conception de logiciels', 'Programmation Python'}
for index, competence in enumerate(competences, 1) :
print(f"{index}. {competence}")
Introduction à la compréhension des sets en Python
Supposons que vous ayez le set suivant, composé de trois balises :balises = {'Tigre', 'Pandas', 'Eléphant'} Pour convertir les balises du set en un autre set de balises en minuscules, vous pouvez utiliser la boucle for suivante :
balises = {'Tigre', 'Pandas', 'Eléphant'}
balises_minuscules = set()
for balise in balises :
balises_minuscules.add(balise.lower())
print(balises_minuscules)
Comment cela fonctionne? :Premièrement, itérer sur chaque élément du set de balises.
Ensuite, convertir chaque balise en minuscule et l'ajouter au nouveau set (balises_minuscules).
Ou vous pouvez utiliser la fonction intégrée map() avec une expression lambda :
balises = {'Tigre', 'Pandas', 'Eléphant'}
balises_minuscules = set(map(lambda balise: balise.lower(), balises))
print(balises_minuscules)
Ou vous pouvez utiliser la fonction intégrée map() avec une expression lambda :
balises = {'Tigre', 'Pandas', 'Eléphant'}
balises_minuscules=set(map(lambda balise: balise.lower(), balises))
print(balises_minuscules)
La fonction map() renvoie un objet map de sorte que vous devez utiliser la fonction set() pour le convertir en un set.Pour rendre le code plus concis, Python vous fournit la syntaxe de compréhension de set comme suit :
{expression for l'élément in set if condition}
La compréhension d'un set vous permet de créer un nouveau set à partir d'un set existant.Une compréhension de set comporte les étapes suivantes :
- itérer sur les éléments d'un set.
- appliquer une expression à chaque élément
- créer un nouveau set d'éléments résultant de l'expression.
Notez que la compréhension de set renvoie un nouveau set, elle ne modifie pas le set original.
Pour revenir à l'exemple précédent, vous pouvez convertir toutes les balises de l'ensemble de balises en utilisant l'interprétation set suivante :
balises = {'Tigre', 'Pandas', 'Eléphant'}
balises_minuscules={balise.lower() for balise in balises}
print(balises_minuscules)
Cette syntaxe semble définitivement plus concise qu'une boucle for et plus élégante que la fonction map().Exemple de compréhension de set en Python avec une clause if.
Supposons que vous souhaitiez convertir tous les éléments du set de balises en minuscules, à l'exception du Numpy.
Pour ce faire, vous pouvez ajouter une condition à la compréhension du set comme ceci :
balises = {'Tigre', 'Pandas', 'Eléphant'}
new_balises = {balise.lower() for balise in balises if balise != 'Pandas'}
print(new_balises)
Joindre deux sets
Il existe plusieurs façons de joindre deux ou plusieurs sets en Python.Vous pouvez utiliser la méthode union() qui renvoie un nouvel ensemble contenant tous les éléments des deux ensembles, ou la méthode update() qui insère tous les éléments d'un ensemble dans un autre :
Exemple La méthode union() renvoie un nouveau set contenant tous les éléments des deux sets :
set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set3 = set1.union(set2)
print(set3)
Exemple La méthode update() insère les éléments du set2 dans le set1 :
set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set1.update(set2)
print(set1)
Remarque : Les fonctions union() et update() excluent les éléments en double.
Python Intersection de sets
En Python, vous pouvez utiliser la méthode set intersection() ou l'opérateur set intersection (&) pour intersecter deux ensembles ou plus :new_set = set1.intersection(set2, set3) nouvel_ensemble = ensemble1 & ensemble2 & ensemble3La méthode intersection() et l'opérateur & ont les mêmes fonctionnalités.
Lors de l'intersection de deux ou plusieurs sets, vous obtenez un nouveau set composé d'éléments qui existent dans tous les sets.
Exemple: Supposons que vous ayez les deux sets suivants s1 et s2 :
s1 = {'Python', 'Java', 'C++'}
s2 = {'C#', 'Java', 'C++' }
# L'intersection de ces deux sets donne un nouveau set qui contient deux éléments 'Java' et 'C++' :
s = {'Java', 'C++'}
Ce sont les éléments qui existent dans les deux sets.L'intersection de set a de nombreuses applications utiles.
Par exemple:
* Trouver les favoris communs de deux amis sur une application de réseau social.
Rechercher les compétences communes de deux ou plusieurs employés sur une application RH.
En Python, vous pouvez intersecter deux ensembles ou plus à l'aide de la méthode set intersection() ou de l'opérateur set intersection (&).