2.7 Python - Sets
Introduction
As-tu déjà eu besoin d'obtenir uniquement les valeurs distinctes qui étaient dans une liste ?
Eh bien, ne cherches pas plus loin mon ami ! Les sets sont là pour toi ! Allons-y et voyons pourquoi.
Objectifs
✅ Ce que sont les sets et pourquoi ils sont si utiles. ✅ Les méthodes les plus utilisées
Sommaire
Qu'est-ce qu'un Set ?
Les sets sont une collection bien définie d'éléments non ordonnés et uniques. Si cette définition te semble familière en mathématiques, tu as raison. Les sets sont la pierre angulaire de la théorie des ensembles.
Contrairement aux listes ou aux tuples, ils n'ont pas d'ordre et ne peuvent pas avoir d'éléments répétés. Comme les clés d'un dictionnaire, chaque élément ne peut apparaître qu'une seule fois ! Mais aucune valeur ne leur est attachée.
Comparons-les en utilisant du code. Exécutes les lignes suivantes dans un notebook :
list_of_numbers = [2, 3, 4, 2, 6, 2, 9]
tuple_of_numbers = tuple(list_of_numbers)
set_of_numbers = set(list_of_numbers) # This is how to make a set from a list
print('This is a: ', list_of_numbers)
print('This is a tuple: ', tuple_of_numbers)
print('This is a set: ', set_of_numbers)
print('Type of the variable set_of_numbers: ', type(set_of_numbers))
Est-ce que tu vois les différences ?
Click to reveal|||text|||Clique pour avoir une réponse|||0|||
Les sets sont reconnaissables aux accolades.
De plus, ils n'ont jamais de valeurs répétées.
Pourquoi les sets sont-ils utiles ?
Pour comprendre quand et comment utiliser les sets, prenons un exemple.
Tu es en train d'écrire un morceau de code. Tu es en train de taper avec certitude, quand soudain tu t'arrêtes, car tu viens d'arriver à un point du code où tu dois compter toutes les valeurs distinctes dans une liste et mettre en évidence celle qui est la plus utilisée. La raison pourrait être par exemple pour chercher à connaître le client le plus fréquent du magasin qui t'as embauché ou le film le plus regardé sur Netflix.
Pour les besoins de notre exemple, nous considérerons une liste de nombres:
list_of_values = [24, 55, 19, 71, 42, 48, 37, 25, 74, 17, 65, 72, 91, 70, 47, 50, 15, 48, 27, 60, 67, 3, 20, 82, 57, 9, 76, 70, 89, 19, 93, 26, 85, 87, 0, 15, 80, 23, 78, 78, 33, 36, 31, 72, 57, 0, 40, 28, 56, 8, 62, 78, 95, 31, 51, 39, 0, 14, 73, 75, 60, 38, 97, 21, 43, 44, 17, 23, 79, 69, 10, 95, 73, 8, 30, 70, 43, 2, 7, 30, 68, 59, 79, 4, 50, 96, 19, 90, 23, 67, 15, 85, 27, 61, 10, 15, 62, 64, 30, 36, 11]
print(f'Our list is {len(list_of_values)} values long.')
Dans le domaine de la Data, nous devons souvent traiter un grand nombre de valeurs. Il n'est pas vraiment possible de les examiner toutes pour déterminer les valeurs distinctes à prendre en compte. Donc, allons-y et utilisons des sets.
set_of_values = set(list_of_values)
print(f'Our list is {len(set_of_values)} values long.')
Comme tu peux le voir, il y avait un certain nombre de valeurs uniques. Il aurait fallu un peu de temps pour les trouver toutes. Nous pouvons maintenant passer à la construction du dictionnaire.
dictionary_for_count = {} # Notice the dictionary has the same {} sets have
for value in set_of_values:
dictionary_for_count[value] = list_of_values.count(value)
print(dictionary_for_count)
Maintenant tu peux continuer et trouver le numéro le plus utilisé. Lequel est-ce ?
Click to reveal|||text|||Clique pour avoir une réponse.|||0|||
15
Créer, modifier et manipuler des sets.
Voyons maintenant comment créer, combiner et modifier des sets. Pour ce faire, nous allons consulter les ressources suivantes.
Challenge
Créez une copie du notebook dont le lien est indiqué ici et remplissez les missions qu'il contient, qui sont, comme tu le devines sans doute, toutes sur le sujet : Python 2.7 - Les sets
Une fois que tu as terminé, postes un lien vers ton notebook comme solution de validation, n'oublies pas de le partager pour que tous ceux qui ont le lien puissent le lire.
Critères de validation
Le notebook est partagé pour que toute personne ayant le lien puisse le lire. Les exercices ont été correctement réalisés
Dans ce notebook, tu trouveras une solution à ce challenge Ce n'est pas la seule possible mais elle fonctionne !
Ressources partagées sur cette quête
- very short and clear video that describes sets. check out his channel, his info is short, clear and precse. https://www.youtube.com/watch?v=t9j8lCUGZXo&t=131s
- pour comprendre les setshttps://www.docstring.fr/glossaire/sets/