Laço FOR em uma linha - Python

Outro dia precisei criar uma lista utilizando apenas uma linha em Python. Felizmente python tem algo chamado Lista por compreensão, essa é uma das melhores formas de se criar uma lista.

A estrutura básica em python é a seguinte:
outras_coisas = [coisa for coisa in lista_de_coisas]
Para cada coisa numa lista_de_coisas, você pode coisar a primeira do jeito que precisar. Deixa eu explicar melhor... Vamos supor que você queira extrair só o nome dos contatos de uma agenda (dicionário), usando o for normal, você faria o seguinte:

>>> contatos = []
>>> for c in agenda_contatos:
...     contatos.append(c.get('nome'))
...
>>> squares
['Douglas', 'Elton', 'Maria', 'Delilah']

Com listas de compreensão, você pode fazer isso tudo em uma só linha:

contatos = [c.get('nome') for c.nome in agenda_contatos]


Fonte [Em inglês]: http://blog.teamtreehouse.com/python-single-line-loops

Comentários

Postagens mais visitadas deste blog

Como ler cada linha de um arquivo no Powershell

Uma série sobre Python - Ambiente de desenvolvimento

Wagtail CMS para construção de sites - Apresentação