Les boucles de js
Dans ce tutoriel, nous allons connaître le type Set de Python et comment l'utiliser efficacement.
Un set (ensemble) de Python est une liste non ordonnée d'éléments immuables. Ce qui veut dire :
Les éléments d'un set ne sont pas ordonnés.
Les éléments d'un set sont uniques. Un set ne permet pas de dupliquer des éléments.
Les éléments d'un set ne peuvent pas être modifiés. Par exemple, ils peuvent être des nombres, des chaînes de caractères et des tuples, mais pas des listes ou des dictionnaires.
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.ensemble_vide = {}
Car cela définit un dictionnaire vide.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'}
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.
notes = {20, 17, 13, 14, 15} taille = len(notes) print(taille)
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.
notes = {20, 17, 13, 14, 15} note = 19 if note not in notes : print(f"Le set ne contient pas l'élément : {note}")
notes = {20, 17, 13, 14, 15} notes.add(19) print(notes)
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).
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 :
notes = {20, 17, 13, 14, 15} notes.discard(19) print(notes)
competences = {'Résolution de problèmes', 'Conception de logiciels', 'Programmation Python'} competence = competences.pop() print(competence)
competences = {'Résolution de problèmes', 'Conception de logiciels', 'Programmation Python'} competences.clear() print(competences)
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')
competences = {'Résolution de problèmes', 'Conception de logiciels', 'Programmation Python'} for competences in competences : print(competences)
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().
competences = {'Résolution de problèmes', 'Conception de logiciels', 'Programmation Python'} for index, competence in enumerate(competences, 1) : print(f"{index}. {competence}")
balises = {'Tigre', 'Pandas', 'Eléphant'} balises_minuscules = set() for balise in balises : balises_minuscules.add(balise.lower()) print(balises_minuscules)Comment cela fonctionne? :
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.
{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.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().
balises = {'Tigre', 'Pandas', 'Eléphant'} new_balises = {balise.lower() for balise in balises if balise != 'Pandas'} print(new_balises)
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.
new_set = set1.intersection(set2, set3) nouvel_ensemble = ensemble1 & ensemble2 & ensemble3La méthode intersection() et l'opérateur & ont les mêmes fonctionnalités.
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.