Compreensão de listas em Python explicada com exemplos
List comprehensions fornecem uma maneira concisa de criar listas em Python. Elas são mais legíveis e frequentemente mais eficientes do que usar loops tradicionais. Este artigo explorará o que são list comprehensions, como elas funcionam e fornecerá exemplos para ilustrar seu uso.
O que é uma compreensão de lista?
Uma compreensão de lista é uma maneira compacta de processar todos ou parte dos elementos em uma coleção e retornar uma lista com os resultados. A sintaxe de uma compreensão de lista é:
[expression for item in iterable if condition]
Aqui, expression
é o item atual na iteração, mas também é o resultado, que você pode manipular antes que ele termine como um item de lista. iterable
é a coleção pela qual você está fazendo o loop, e condition
é um filtro opcional que inclui apenas itens que satisfazem a condição.
Exemplos básicos
Criando uma lista de quadrados
Para criar uma lista de quadrados de números de 0 a 9, você pode usar uma compreensão de lista da seguinte maneira:
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
squares = [x ** 2 for x in numbers]
print(squares)
Saída:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Filtrando Itens
Você também pode adicionar uma condição para filtrar itens. Por exemplo, para obter apenas os números pares da lista:
even_squares = [x ** 2 for x in numbers if x % 2 == 0]
print(even_squares)
Saída:
[0, 4, 16, 36, 64]
Achatando uma lista de listas
Se você tem uma lista de listas e quer simplificá-la, você pode usar uma compreensão de lista:
list_of_lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened = [item for sublist in list_of_lists for item in sublist]
print(flattened)
Saída:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Exemplos avançados
Aplicando Funções
Você pode aplicar funções dentro de uma compreensão de lista. Por exemplo, para converter uma lista de strings para maiúsculas:
words = ['hello', 'world', 'python']
uppercase_words = [word.upper() for word in words]
print(uppercase_words)
Saída:
['HELLO', 'WORLD', 'PYTHON']
Compreensões aninhadas
Compreensões de lista podem ser aninhadas. Por exemplo, para criar uma lista de tuplas (i, j) onde i e j são ambos elementos de duas listas:
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
pairs = [(i, j) for i in list1 for j in list2]
print(pairs)
Saída:
[(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b'), (2, 'c'), (3, 'a'), (3, 'b'), (3, 'c')]
Conclusão
As compreensões de lista oferecem uma maneira poderosa e concisa de gerar listas em Python. Elas podem simplificar seu código e torná-lo mais legível, substituindo várias linhas de código de loop por uma única linha de compreensões. Pratique o uso de compreensões de lista para se sentir mais confortável com sua sintaxe e capacidades.