Maison > développement back-end > Tutoriel Python > Comment fonctionnent les compréhensions de listes imbriquées : décoder la structure et les fonctionnalités ?

Comment fonctionnent les compréhensions de listes imbriquées : décoder la structure et les fonctionnalités ?

Patricia Arquette
Libérer: 2024-10-30 06:53:28
original
874 Les gens l'ont consulté

How do Nested List Comprehensions Work: Decoding the Structure and Functionality?

Comprehension de listes imbriquées

Les compréhensions de listes imbriquées fournissent un outil puissant pour générer des structures de données complexes de manière concise et efficace. Pour comprendre leur comportement, décomposons leur structure.

Syntaxe générale :

[exp2([exp1 for x in xSet]) for y in ySet]
Copier après la connexion

Traduction en forme de boucle étendue :

result = []
for y in ySet:
    innerResult = []
    for x in xSet:
        innerResult.append(exp1)
    exp2Result = exp2(innerResult)
    result.append(exp2Result)
Copier après la connexion

Cas simplifiés :

  • [exp1 pour x dans xSet pour y dans ySet] :

    result = []
    for x in xSet:
        for y in ySet:
            result.append(exp1)
    Copier après la connexion
  • [[exp1 pour x dans xSet] pour y dans ySet] :

    result = []
    for y in ySet:
        innerResult = []
        for x in xSet:
            innerResult.append(exp1)
        result.append(innerResult)
    Copier après la connexion

Exemple :

La compréhension de liste imbriquée suivante :

[(min([row[i] for row in rows]), max([row[i] for row in rows])) for i in range(len(rows[0]))]
Copier après la connexion

Génère une liste de tuples, où chaque tuple contient les valeurs minimales et maximales pour une colonne donnée sur toutes les lignes de la liste des lignes . La forme de boucle développée équivalente serait :

result = []
for i in range(len(rows[0])):
    innerResult = []
    for row in rows:
        innerResult.append(row[i])
    innerResult2 = []
    for row in rows:
        innerResult2.append(row[i])
    tuple = (min(innerResult), max(innerResult2))
    result.append(tuple)
Copier après la connexion

Points clés :

  • La boucle la plus interne correspond à l'expression la plus interne (exp1).
  • Les boucles externes génèrent l'entrée pour les boucles internes.
  • Le résultat est une liste des résultats de l'expression interne.
  • L'ordre d'imbrication des boucles détermine la structure de la liste résultante.

En comprenant cette approche systématique, vous pouvez appliquer le concept à un large éventail de variations de compréhension de liste.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal