"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como as compreensões de listas aninhadas podem simplificar a criação de listas complexas?

Como as compreensões de listas aninhadas podem simplificar a criação de listas complexas?

Publicado em 2024-11-20
Navegar:244

How Can Nested List Comprehensions Simplify Complex List Creation?

Explicação da compreensão da lista aninhada

A compreensão da lista aninhada oferece uma maneira concisa de criar listas complexas dinamicamente usando iteráveis. Embora sua funcionalidade possa ser compreendida por meio de loops for equivalentes, sua abordagem sistemática ajuda a aplicar o conceito em vários exemplos.

Sintaxe e tradução

As compreensões de listas aninhadas seguem a sintaxe:

[exp2([exp1 for x in xSet]) for y in ySet]

Decompondo isso, você descobrirá que para cada elemento y em ySet, uma lista interna é criada. Dentro desta lista interna, uma expressão exp1 é avaliada para cada elemento x em xSet. Por fim, a compreensão da lista externa avalia exp2 usando cada lista interna criada. &&&]

[exp1 para x em xSet para y em ySet]

Equivalente for loop:

resultado = [] para x em xSet: para y em ySet: result.append(exp1)
  • Compreensão da lista de listas:
[exp1 for x in xSet for y in ySet]
[[exp1 for x in xSet] for y in ySet]

Equivalente para loop:
[exp1 for x in xSet for y in ySet]
resultado = [] para y em ySet: resultado interno = [] para x em xSet: innerResult.append(exp1) result.append(innerResult)
  • Aplicação Sistemática
Para generalizar, as seguintes etapas podem ser seguidas:
[exp1 for x in xSet for y in ySet]

Comece do mais interno para loop.

result = []
for y in ySet:
    innerResult = []
    for x in xSet:
        innerResult.append(exp1)
    result.append(innerResult)

Mova para o próximo loop for e use a lista criada na etapa anterior como o iterável .Repita as etapas 1 a 3 para cada loop for na compreensão.

Use a expressão externa (exp2) para avaliar o resultado final.

  1. Lembre-se, o aninhamento de loops for ocorre da esquerda para a direita, permitindo transformações complexas de listas em uma sintaxe concisa.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3