Comment utiliser l’ensemble de types de données Python


Glissons-nous dans un article Python génial parlant du type de données pour les collections appelées ensembles. Il existe quatre types de structures pour travailler avec des collections de données : liste, ensemble, tupleet dictionnaire. Nous n’allons pas passer en revue les trois autres types de données dans cet article, nous allons plutôt planter le décor pour une meilleure compréhension du fonctionnement des ensembles Python.

Nous verrons également quelques exemples de la façon dont les ensembles sont créés, comment nous pouvons les utiliser et les avantages qu’ils offrent.

Jeune femme étudiant la programmation Python et comment utiliser les ensembles.

Sans plus tarder, glissons dedans.

Télécharger maintenant : une introduction à Python (guide gratuit)

Qu’est-ce qu’un ensemble en Python ?

Avant de commencer, si vous n’avez pas consulté notre introduction au langage de programmation Python, c’est fortement recommandé. Un ensemble est un type de collecte de données utilisé en Python pour stocker plusieurs éléments dans une seule variable. Les ensembles en Python ne sont pas ordonnés et, en tant que tels, ne sont pas toujours cohérents dans l’ordre dans lequel ils sont renvoyés. De plus, les éléments de l’ensemble sont immuables – c’est-à-dire. ne peut pas être changé. Cependant, des éléments peuvent être ajoutés et supprimés.

Les doublons ne sont pas autorisés avec les ensembles de données Python et seront supprimés. Il convient également de noter que l’ensemble Python prend en charge tous les types de données – y compris les nombres, les chaînes et les booléens – mais prend également en charge les structures de données imbriquées.

Définir dans l’exemple Python

Un ensemble en python est identifié par le fait que ce type de données est contenu dans des accolades, et ils sont également créés avec eux. Les informations stockées dans la variable set ressemblent à l’exemple suivant.

 
{"Boa", "Python", "Garter"}

Voici à quoi ressemblent les données définies, et elles peuvent être stockées dans une variable pour être utilisées à d’autres moments dans vos programmes.

Comment créer un ensemble en Python

L’approche de déclaration standard pour créer un ensemble Python utilise la notation entre accolades. C’est l’approche la plus couramment utilisée et sa syntaxe est très simple. Regardons cela ensuite.

 
snekSet = {"Boa", "Python", "Garter"}

Le constructeur d’ensembles est une autre approche pour créer des ensembles Python. Cette méthode est plus directe et offre d’autres avantages, comme la création d’instances d’ensemble plus complexes.

 
snekSet = set( ("Boa", "Python", "Garter") ) # note the double ()

Le bloc de code suivant créerait trois ensembles, chacun contenant les informations qui leur ont été ajoutées lors de la création.

 
var1 = ("Boa", "Ball", "Garter")
var2 = ("Constrictor", "Snake", "Python")
var3 = ("non-venomous", "venomous", "poisonous")
snekSet= set((var1, var2, var3))

Quelque chose d’intéressant à noter est que dans ce cas, chaque ensemble à l’intérieur de notre ensemble de niveau supérieur sera renvoyé dans un modèle généré aléatoirement. Cependant, les décors à l’intérieur maintiendraient un ordre préservé. Regardons cela plus en détail.

Si nous imprimons le snekSet ci-dessus pour voir ce qu’il contient, nous devrions voir l’un des résultats possibles suivants.

 
{("Boa", "Ball", "Garter"), ("Constrictor", "Snake", "Python"), ("non-venomous", "venomous", "poisonous")}
{("Constrictor", "Snake", "Python"), ("Boa", "Ball", "Garter"), ("non-venomous", "venomous", "poisonous")}
{("non-venomous", "venomous", "poisonous"), ("Constrictor", "Snake", "Python"), ("Boa", "Ball", "Garter")}

L’ordre de chaque élément de l’ensemble de niveau supérieur est incohérent, et plus l’ensemble est grand, plus il y a de possibilités de combinaisons. Cependant, si nous examinons cela, nous constatons qu’il préserve l’ordre de chaque ensemble de niveau inférieur, une mise en garde digne de mention pour travailler avec des ensembles en Python.

Méthodes pour les ensembles en Python

Il existe plusieurs autres méthodes qui fonctionnent chacune différemment et peuvent ajouter à la puissance des ensembles Python. Évoquons brièvement certains d’entre eux, puis passons au récapitulatif de cet article.

Un tableau des méthodes Python courantes et de leurs utilisations

Manipulation d’ensembles Python

Comment accéder aux ensembles en Python

Les éléments d’un ensemble ne peuvent pas être ciblés par clé ou index ; ce n’est qu’en parcourant l’ensemble qu’il est possible d’accéder aux éléments individuels. L’approche la plus courante consiste à utiliser les pour-dans boucle, ce qui nous permet de parcourir l’ensemble une fois pour chaque élément qu’il contient.

 
snekSet = {"Boa", "Python", "Garter"}
for x in snekSet:
print(x)

Cet appel à la fonction d’impression imprimerait chaque élément un par un pour chaque itération de boucle, se terminant après le dernier élément de l’ensemble.

L’autre méthode utilisée est la dans mot-clé. Si un élément donné est présent dans l’ensemble, il renvoie une valeur booléenne. Ainsi, par exemple, le bloc de code suivant imprimerait vrai à la console car Python est dans l’ensemble.

 
snekSet = {"Boa", "Python", "Garter"}
print("Python" in snekSet)

Comment ajouter des ensembles en Python

Étant donné que les ensembles sont assortis de restrictions sur leur manipulation, telles que les éléments immuables et le fait qu’ils n’autorisent pas les doublons, leur ajout est assez simple. Les ensembles Python sont livrés avec une méthode appelée ajouter qui nous permet d’ajouter directement un élément à l’ensemble.

 
snekSet = {"Boa", "Python", "Garter"}
snekSet.add("Viper")

Cette méthode ajoute un seul élément à l’ensemble, que l’élément soit une collection ou non, ce qui signifie qu’une collection est ajoutée en tant qu’élément non fusionné. L’option suivante consiste à utiliser le mise à jour méthode pour mettre à jour un ensemble avec de nouveaux éléments. Il est important de noter que cette approche diffère de la ajouter méthode de plusieurs manières.

 
snekSet = {"Boa", "Python", "Garter"}
snekColorsSet = {"Red and Black", "multi-tone green"}
snekSet.update(snekColorsSet)
print(snekSet)

Le bloc de code ci-dessus mettrait à jour notre snekSet avec les couleurs du snekColorsSet, fusionnant les deux ensembles en un seul ensemble. Dans ce cas, il n’y a pas d’éléments en double. S’il y en avait, la mise à jour les ignorera simplement et ils ne seront pas ajoutés.

Comment supprimer des ensembles existants en Python

La suppression d’éléments d’un ensemble peut être accomplie de plusieurs manières que l’ajout d’éléments. La raison principale est que les ensembles ne sont pas ordonnés et qu’ils renvoient des valeurs dans des ordres aléatoires. Cette incohérence signifie que la suppression d’éléments peut devenir délicate sans cibler directement les éléments.

Méthodes prévisibles de suppression d’éléments d’ensemble en Python

Pour supprimer de manière prévisible des éléments d’un ensemble Python, nous avons le retirer et jeter méthodes pour spécifier l’élément que nous voulons supprimer. Examinons les deux méthodes et discutons de leurs différences.

Méthode Python set remove

Le retirer La méthode a une fonctionnalité utile en ce sens qu’elle génère une erreur si l’élément cible n’est pas présent. Cette erreur peut nous alerter d’un comportement inattendu, mais nous devons toujours nous préparer à détecter cette erreur si elle se déclenche.

 
snekSet = {"Boa", "Python", "Garter"}
snekSet.remove("Python")
print(snekSet)

En cas d’erreur, le message d’erreur suivant peut aider à identifier le problème.

 
KeyError: yourTargetKey
Python définir la méthode de suppression

La méthode de rejet diffère en ce qu’elle est moins stricte et qu’elle ne génère pas d’erreur si les éléments ciblés ne sont pas présents. L’absence d’erreur ici a son utilité ; Cependant, vous devez toujours vous préparer à la possibilité qu’un élément ne soit pas trouvé car cela peut entraîner un comportement inattendu dans votre logiciel.

 
snekSet = {"Boa", "Python", "Garter"}
snekSet.discard("Python")
print(snekSet)

Le populaire La méthode est différente car elle accède simplement à l’ensemble et supprime l’élément désigné comme dernier. Cependant, étant donné que les articles de la commande retournés sont imprévisibles, il n’existe aucun moyen précis de savoir ce qui sera supprimé de l’ensemble.

 
snekSet = {"Boa", "Python", "Garter"}
x = snekSet.pop()
print(x)
print(snekSet)

La méthode pop renvoie également la valeur de l’élément supprimé, ce qui peut être utile pour suivre les modifications apportées à vos ensembles. Dans le code ci-dessus impression(x) imprimera l’élément en cours de suppression, tandis que imprimer (snekSet) renverra les éléments restants.

Vider ou supprimer un ensemble en Python

Pour supprimer tous les éléments d’un ensemble, vous pouvez utiliser le clair , qui effacera l’ensemble de tous les éléments qu’il contient mais conservera l’ensemble lui-même. La méthode claire est utile pour les vidages d’informations et le repeuplement en fonction de paramètres donnés dans votre logiciel.

 
snekSet = {"Boa", "Python", "Garter"}
snekSet.clear()

Le del le mot clé a le même objectif dans tous les domaines ; dans tout cas d’utilisation compatible, le mot-clé del supprime l’objet cible. Dans la plupart des autres types de collecte de données en Python, vous pouvez cibler un élément et le supprimer. En raison de la nature des ensembles en Python, ce n’est pas une action réalisable ; cependant, del peut toujours être utilisé pour supprimer entièrement un ensemble.

 
snekSet = {"Boa", "Python", "Garter"}
del snekSet

Joindre plusieurs ensembles en Python

Rejoindre des ensembles peut devenir délicat. Heureusement, Python nous a fourni plusieurs fonctions pour faciliter ce processus de différentes manières. Examinons certains d’entre eux et voyons comment ils fonctionnent avec un exemple de chacun.

Union d’ensembles Python

La méthode union joint simplement deux ensembles en un seul et renvoie un nouvel ensemble avec toutes les valeurs. Si des doublons sont présents, ils seront ignorés sans erreur.

 
snekSet1 = {"Boa", "Python", "Garter"}
snekSet2 = {"Constrictor", "viper", "Boa"}
snekSet3 = set1.union(set2)

Mise à jour de l’ensemble Python

La méthode de mise à jour est légèrement différente car elle ne renvoie pas de nouvel ensemble. Au lieu de cela, il ajoute les éléments d’un ensemble à un autre ensemble cible.

 
snekSet1 = {"Boa", "Python", "Garter"}
snekSet2 = {"Constrictor", "viper", "Boa"}
snekSet1.update(snekSet2)

Il existe d’autres méthodes de jointure qui se comportent différemment ; Voici les intersection et différence_symétrique méthodes.

Intersection d’ensemble Python

La fonction de méthode d’intersection recherche uniquement les éléments en double dans plusieurs ensembles. Cela peut sembler contre-intuitif étant donné que les ensembles ne sont pas autorisés à avoir des doublons ; regardons comment cela fonctionne.

 
snekSet1 = {"Boa", "Python", "Garter"}
snekSet2 = {"Constrictor", "viper", "Boa"}
snekSet3 = snekSet1.intersection(snekSet2)

Dans l’exemple ci-dessus, le seul élément qui serait conservé est Boacar les autres sont uniques parmi les deux ensembles.

 
snekSet1 = {"Boa", "Python", "Garter"
snekSet2 = {"Constrictor", "Viper", "Boa"}
snekSet1.intersection_update(snekSet2)

Et tout comme la méthode de mise à jour, mise à jour_intersection modifie la cible d’origine en fonction de l’ensemble fourni à la méthode. Ainsi, après avoir exécuté le code ci-dessus, il nous resterait snekSet1 réduit à un seul élément.

Python définit la différence symétrique

Le différence_symétrique la méthode fait le contraire ; il compare deux ensembles et ne conserve que les éléments qui ne sont PAS dans les deux.

 
x = {"Boa", "Python", "Garter"}
y = {"Constrictor", "viper", "Boa"}
z = x.symmetric_difference(y)

Le mise à jour_de_différence_symétrique La méthode est similaire à la précédente, mais elle partage également l’approche des méthodes de mise à jour consistant à mettre à jour un ensemble existant au lieu de renvoyer un nouvel ensemble.

 
x = {"Boa", "Python", "Garter"}
y = {"Constrictor", "viper", "Boa"}
x.symmetric_difference_update(y)
print(x)

Nous avons couvert beaucoup de choses ici, et vous devriez être fier de vous pour être arrivé jusqu’ici, mais il reste encore beaucoup à apprendre. Ensuite, examinons quelques-unes des autres méthodes qui pourraient s’avérer utiles dans vos besoins de développement de logiciels.

Utiliser des ensembles en Python

Les ensembles Python sont uniques et ont leurs mises en garde si vous ne faites pas attention, mais ils ont beaucoup de puissance. Certains développeurs regarderaient ce message et l’identifieraient immédiatement comme une excellente structure de données pour l’apprentissage automatique. Quels que soient vos objectifs, les ensembles valent la peine d’être compris, alors terminons cet article avec un bref récapitulatif de ce que nous avons couvert aujourd’hui.

Non ordonné: les ensembles Python ne sont pas ordonnés ; par conséquent, les éléments d’ensemble ne sont pas accessibles via des index ; ils doivent être ciblés directement. Bien que les éléments d’un ensemble soient renvoyés dans un ordre aléatoire, Python nous offre le moyen de cibler directement les éléments. Python considère également les éléments d’un ensemble comme des clés sans valeurs appariées.

Immuable: Les ensembles Python contiennent des éléments immuables. Bien que nous puissions toujours ajouter et supprimer un ensemble, nous ne pouvons pas modifier les éléments déjà présents.

Prend en charge tous les types de données: Les ensembles Python prennent en charge tous les types de données, y compris les entiers, les chaînes et les valeurs booléennes, et ils peuvent être mélangés de n’importe quelle manière.

Prend en charge les données imbriquées: les ensembles Python prennent également en charge les collections de données imbriquées. Cela signifie que nous pouvons imbriquer des groupes de données dans un ensemble en tant qu’éléments individuels.

De nombreuses façons d’interagir: Avec les ensembles de données Python, nous avons plusieurs façons d’interagir avec eux. Cependant, il existe d’autres façons de joindre des ensembles que d’ajouter ou de supprimer des éléments.

Mises en garde à considérer: Il y a quelques mises en garde à prendre en compte lorsque vous travaillez avec des ensembles de données Python. Cette plus grande mise en garde concerne la manière dont la nature non ordonnée des ensembles peut affecter votre logiciel. De plus, avec l’impossibilité de cibler les éléments en fonction de leur index, vous devrez faire plus attention à la manière dont vous accédez aux données d’un ensemble.

Avec ces informations à votre disposition, vous êtes prêt à vous plonger dans l’utilisation des ensembles de données Python, à essayer de les expérimenter et à découvrir comment vous pouvez les manipuler. Rappelez-vous toujours, cependant, que les erreurs et les erreurs sont tout aussi informatives que leur absence.

python



Vous pouvez lire l’article original (en Anglais) sur https://blog.hubspot.com/website/python-set

Leave a Reply

Your email address will not be published. Required fields are marked *