Maison >développement back-end >Tutoriel Python >Python a-t-il une structure de données d'ensemble ordonné intégrée ?

Python a-t-il une structure de données d'ensemble ordonné intégrée ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-16 18:02:13496parcourir

Does Python Have a Built-in Ordered Set Data Structure?

Structures de données ordonnées de Python

Python fournit une gamme de structures de données ordonnées, y compris le dictionnaire ordonné. Cependant, une question se pose : Python propose-t-il également un ensemble ordonné ?

Absence d'ensemble ordonné intégré

Contrairement aux dictionnaires ordonnés, Python n'a pas d'ensemble ordonné intégré. dans le type d'ensemble ordonné. Cette omission peut être attribuée au fait que les ensembles conservent intrinsèquement des collections non ordonnées d'éléments uniques.

Émulation d'ensembles ordonnés dans Python 3.7

Néanmoins, à partir de Python 3.7, vous peut utiliser le dict de la bibliothèque standard pour usurper l'identité d'un ensemble ordonné. En créant un dict avec uniquement des clés (et des valeurs définies sur Aucune), vous pouvez obtenir la fonctionnalité souhaitée.

keywords = ['foo', 'bar', 'bar', 'foo', 'baz', 'foo']

ordered_keywords = list(dict.fromkeys(keywords))
print(ordered_keywords)
# Output: ['foo', 'bar', 'baz']

Cette approche filtre efficacement les éléments en double tout en préservant l'ordre, imitant le comportement d'un ensemble ordonné. .

Alternative pour les anciennes versions de Python

Si vous utilisez une version de Python antérieure à 3.7, vous pouvez exploitez collections.OrderedDict pour obtenir une fonctionnalité d’ensemble ordonné similaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn