"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 > As compreensões de lista podem ter iteradores dependentes?

As compreensões de lista podem ter iteradores dependentes?

Publicado em 2024-12-21
Navegar:395

 Can List Comprehensions Have Dependent Iterators?

Iteradores independentes na compreensão de lista

Em Python, as compreensões de lista permitem vários loops de iteração. Considere o seguinte exemplo:

[(x, y) for x in a for y in b]

onde aeb são sequências. Essa compreensão cria pares de elementos do produto cartesiano de a e b.

Os iteradores podem ser dependentes?

Um iterador em uma compreensão de lista pode referir-se a outro? A resposta é sim, e o código a seguir demonstra isso:

[x for x in a for a in b]

Nesta compreensão, o iterador do loop externo a se torna o iterador para o loop interno. Isso efetivamente nivela uma lista aninhada.

Exemplo

Se tivermos uma lista aninhada, a:

a = [[1, 2], [3, 4]]

A seguinte compreensão da lista a achataria em uma única lista:

[x for x in a for a in b]

Resultado:

[1, 2, 3, 4]

Solução alternativa usando geradores

No código Python fornecido, o texto é armazenado como frases e a tarefa é extrair uma única lista de palavras. Veja como você pode conseguir isso usando um gerador:

text = (("Hi", "Steve!"), ("What's", "up?"))
gen = (word for sentence in text for word in sentence)

A variável gen agora produz a lista achatada de palavras:

for word in gen:
    print(word)

Saída:

Hi
Steve!
What's
up?
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