Para loop in python
Uma declaração para loop em Python itera sequencialmente sobre membros de qualquer objeto, lista, string etc. Comparado com outras linguagens de programação, sua sintaxe é muito mais limpa e não requer etapas de iteração para definir manualmente e iniciar a iteração. Embora existam maneiras de tornar seu comportamento o mesmo que outras linguagens de programação (não serão abordadas neste artigo). Você também pode exercer algum controle sobre loops usando declarações como continuar, quebrar, passar etc. Abaixo está um exemplo simples de loop em python:
para x no intervalo (10):O loop for imprimirá dez números a partir de 0 e terminando em 9.
Lista compreensões
A compreensão da lista não passa de uma maneira abreviada / concisa de escrever multi-line para loops em uma declaração de uma linha. O exemplo de compreensão da lista abaixo criará uma nova lista como [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], incluindo todos os valores de "x" nele.
números = [x para x no intervalo (10)]Observe que a compreensão da lista sempre cria uma nova lista e não modifica os iteráveis originais usados na expressão. Uma expressão típica de compreensão da lista deve ter uma cláusula "para" e pode ser seguida por declarações condicionais "se" e "else". Sem usar uma compreensão da lista, o exemplo acima será escrito da seguinte maneira:
números = []Desempenho e legibilidade
As compreensões da lista são mais rápidas do que para loops. No entanto, a menos que você esteja iterando mais de centenas de milhares de itens, você não notará grandes melhorias de desempenho. Enquanto a compreensão da lista fornece uma maneira concisa de escrever para loops, expressões complexas podem levar a baixa legibilidade do código e aumento da verbosidade. É importante manter o código legível, a menos que atingir o desempenho máximo seja uma necessidade absoluta para o seu programa.
Exemplo: Usando a Sintaxe de compreensões da lista com dicionários e conjuntos
Um dicionário Python é uma coleção de elementos definidos em pares de valor-chave, enquanto um conjunto é uma coleção de valores únicos em que duplicatas não são permitidas. As compreensões da lista podem ser usadas com dicionários e conjuntos Python também. A sintaxe difere um pouco, em vez de encerrar a expressão em aparelhos quadrados, agora você terá que usar aparelhos encaracolados. Você também receberá um novo objeto de dicionário / conjunto em vez de uma nova lista.
Data = "City": "New York", "Nome": "John Doe"O exemplo acima converterá valores de string em caso de título e criará um novo dicionário chamado "formatted_data", cuja saída será: 'City': 'New York', 'Name': 'John Doe'. Você também pode alterar o dicionário / conjunto no local, especificando a variável de dicionário existente no lado esquerdo.
Data = "City": "New York", "Nome": "John Doe"Sem usar as compreensões do dicionário, o código ficaria assim:
Data = "City": "New York", "Nome": "John Doe"Como não há pares de valor-chave nos conjuntos, uma compreensão de conjuntos pode ser definida da mesma maneira que uma compreensão de lista. A única diferença é o uso de aparelhos encaracolados.
Exemplo: múltiplo para loops em uma compreensão da lista
O exemplo de compreensão da lista mencionado acima é básico e usa uma única instrução "for". Abaixo está um exemplo que usa vários loops e uma instrução “se” condicional.
adjetivos = ["disco", "eoan", "focal", "artful"]O código mostrará ['disco dingo', 'eoan ermine', 'fossa focal'] como saída. Os dois para loops passam por listas de "adjetivos" e "animais" e seus membros se uniram usando um espaço, apenas se a primeira letra de ambas as palavras forem as mesmas. Sem usar as compreensões da lista, o código ficaria assim:
adjetivos = ["disco", "eoan", "focal", "artful"]Exemplo: Lista de compreensão com a cláusula if-else
O exemplo abaixo mostrará o uso de IF e outras declarações nas compreensões da lista.
número_list = [1, 2, 3, 4]Ao fazer loop em duas listas, a compreensão da lista acima verifica se a soma do par de elementos é uniforme ou não. Executar o código acima mostrará [verdadeiro, falso, verdadeiro, falso, falso, verdadeiro, falso, verdadeiro, verdadeiro, falso, verdadeiro, falso, falso, verdadeiro, falso, verdadeiro] como saída. Sem usar a compreensão da lista, o código ficaria assim:
número_list = [1, 2, 3, 4]Conclusão
A List compreensões fornece uma boa maneira de escrever instruções de loop limpo e conciso. No entanto, eles podem ficar rapidamente complexos e difíceis de entender se vários loops e declarações condicionais são usadas. No final, isso chega ao nível de conforto de um programador, mas geralmente é uma boa ideia escrever um código explícito, legível e fácil de depurar, em vez de excessivamente usando as abreviação.