Maison >développement back-end >Tutoriel Python >Pourquoi Python manque-t-il de compréhension des tuples ?

Pourquoi Python manque-t-il de compréhension des tuples ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-05 06:37:02259parcourir

Why Does Python Lack Tuple Comprehension?

Dévoilement de l'absence de compréhension de tuple en Python

Malgré la disponibilité de compréhensions de listes et de dictionnaires en Python, une omission notable est la compréhension de tuple. Tenter de construire un tuple en utilisant la syntaxe d'une compréhension aboutit à la place à un générateur. Cela soulève la question : pourquoi ?

L'hypothèse initiale selon laquelle l'immuabilité exclut la compréhension des tuples est incorrecte. Python permet de créer des constructions immuables via des compréhensions, comme le démontrent les compréhensions de dictionnaires.

Expressions génératrices et compréhensions de tuples

La principale différence entre les compréhensions de tuples et les expressions génératrices réside dans leur objectif. Les expressions génératrices, entre parenthèses, produisent des séquences de valeurs à la demande. En revanche, les compréhensions de tuples viseraient à créer une collection de valeurs de taille fixe.

Parenthèses et ambiguïté syntaxique

Étant donné que les parenthèses sont déjà utilisées pour les expressions génératrices, elles ne peuvent pas être réutilisées pour les compréhensions de tuples. Cette ambiguïté syntaxique créerait de la confusion et gênerait la lisibilité.

La solution : conversion explicite

Bien qu'il n'existe pas de syntaxe directe pour la compréhension des tuples, le résultat souhaité peut être obtenu en convertissant explicitement une expression génératrice en un tuple utilisant la fonction tuple() :

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

Cette approche offre la flexibilité d'utiliser des expressions génératrices tout en spécifiant explicitement le résultat du tuple prévu.

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