Maison  >  Article  >  développement back-end  >  Pourquoi n’y a-t-il pas de compréhension native des tuples en Python ?

Pourquoi n’y a-t-il pas de compréhension native des tuples en Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-07 15:38:02540parcourir

Why Is There No Native Tuple Comprehension in Python?

Compréhension de tuples en Python : percer le mystère

Python fournit des compréhensions de listes et de dictionnaires comme moyens pratiques de créer de nouvelles collections. Cependant, la compréhension des tuples semble sensiblement absente. Cela soulève la question : pourquoi n'y a-t-il pas de syntaxe native de compréhension de tuple en Python ?

Contrairement à l'hypothèse selon laquelle l'immuabilité en est la raison, nous pouvons créer des objets immuables au sein des compréhensions à l'aide du constructeur tuple(). Par exemple :

<code class="python">[tuple(i for i in range(3))]  # Immutability is not the issue</code>

Au lieu de cela, le manque de compréhension des tuples vient du fait que les parenthèses sont déjà utilisées pour les expressions génératrices. Considérez l'extrait suivant :

<code class="python">(i for i in range(3))  # This is a generator expression, not a tuple comprehension</code>

Pour résoudre ce chevauchement, on pourrait utiliser des accolades pour la compréhension des tuples ; cependant, ils sont déjà réservés aux compréhensions d'ensembles.

La solution réside dans l'exploitation des parenthèses combinées au constructeur tuple() :

<code class="python">tuple(i for i in range(3))  # Creating a tuple from a generator expression</code>

Cette approche combine efficacement la commodité des compréhensions avec l'immuabilité nature des tuples.

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