DEV Community

Ortiz de Arcanjo António David
Ortiz de Arcanjo António David

Posted on

Lists Comprehension (Compreensão de Listas)

No desenvolvimento de soluções é indispensável o uso de coleções para organizar os dados. Mas sabemos que o uso de coleções torna-se mais complexo na medida que a solução cresce. Uma das formas para simplificar a manipulação de coleções é usando Lists Comprehension.

As lists comprehension são expressões que permitem criar listas baseadas em listas existentes. As Lists comprehension seguem a notação dos conjuntos (da Matemática) em alternativa ao uso de maps e filters.

Como escrever uma List Comprehension?

Para escrever uma list comprehension existem 2 operações comuns:

  • Selecionar os elementos que verifica uma condição;
  • Calcular a expressão para cada elemento da lista.

Benefícios das Lists Comprehensions

  • Os algoritmos ficam mais curtos e fáceis de entender;
  • Tornam a solução mais declarativa;
  • Reduzem o uso de maps, lambdas ou filters;
  • Tornam o a solução mais precisa.

Embora este conceito tenha as suas origens nas linguagens funcionais, actualmente estão presentes em muitas das linguagens.

Exemplos de linguagens que permitem o uso de lists comprehension

  • Linguagens Orientadas a Objectos: C#, Python, Java e Ruby;
  • Linguagens Multiparadigma: Scala, Kotlin, Rust e Swift;
  • Linguagens Funcionais: Erlang, Elixir, Haskell, F# e Lisp.

Sugestão: É aconselhavel criar uma expressão quando queremos descrever operações simples, para não torná-la ilegível. O melhor é entender como as linguagens funcionais resolvem este problema.

Exemplo: Neste exemplo vamos: Filtrar as idades dos adultos, obter o factorial e quadrado de cada elemento numa lista.
Linguagens: Python e Erlang.

Código em Erlang: list_comp.erl

Image description

Código em Python: list_comp.py

Image description

Executando o código Erlang

Image description

Executando o código Python

Image description

AWS Q Developer image

Your AI Code Assistant

Automate your code reviews. Catch bugs before your coworkers. Fix security issues in your code. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE

Top comments (0)

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay