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
Patricia Arquetteoriginal
2024-10-30 06:53:28875parcourir

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]

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)

Cas simplifiés :

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

    result = []
    for x in xSet:
        for y in ySet:
            result.append(exp1)
  • [[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)

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]))]

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)

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!

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