Maison >développement back-end >Tutoriel Python >Pourquoi n'y a-t-il pas de compréhension de tuple en Python ?

Pourquoi n'y a-t-il pas de compréhension de tuple en Python ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-05 00:35:02536parcourir

Why are There No Tuple Comprehensions in Python?

Dévoilement de la compréhension des tuples manquants en Python

Dans le domaine de Python, les compréhensions de listes et de dictionnaires sont omniprésentes, transformant de manière transparente les itérables en listes personnalisées et des dictionnaires. Curieusement, les tuples semblent manquer d'un mécanisme de compréhension dédié, laissant les utilisateurs s'interroger sur son absence.

Immuabilité des tuples

On pourrait initialement émettre l'hypothèse que l'immuabilité des tuples exclut compréhension. Cependant, cette théorie est insuffisante car d'autres types immuables, tels que les chaînes, adoptent volontiers les compréhensions.

Origines historiques

La raison sous-jacente découle d'un choix historique fait par Python. créateurs. Lorsque les expressions génératrices (expressions entre parenthèses qui produisent des itérateurs) ont été introduites, il a été jugé inutile de créer une syntaxe de compréhension de tuple distincte. Les parenthèses étaient déjà la notation choisie pour les générateurs, et fournir une syntaxe supplémentaire spécifique aux tuples aurait créé une redondance.

L'expression du générateur à la rescousse

Si l'absence d'un La syntaxe de compréhension des tuples pose un obstacle, n'ayez crainte ! Python propose une solution de contournement en utilisant des parenthèses pour créer une expression génératrice :

<code class="python">tuple(i for i in (1, 2, 3))</code>

Cette expression est évaluée comme un tuple contenant les éléments souhaités.

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