Lambda, List Comprehension, map e filter

List Comprehension

Explicação

List comprehension é uma maneira concisa e eficiente de criar listas em Python. É como uma forma abreviada de escrever um loop for que cria uma nova lista com base em uma lista existente ou em uma sequência de números.

Demonstração - Dobrar Números

Imagine que exista uma lista de números e deseja-se criar uma nova lista que seja o dobro de cada número.

  • Sem list comprehension, seria algo assim:

    numeros = [1,  2,  3,  4,  5]
    dobro = []
    for num in numeros:
        dobro.append(num *  2)
    print(dobro)
    # retorno: [2, 4, 6, 8, 10]
    
  • Com list comprehension, é possível fazer isso de uma maneira mais simples e direta:

    numeros = [1,  2,  3,  4,  5]
    dobro = [num *  2 for num in numeros]
    print(dobro)
    # retorno: [2, 4, 6, 8, 10]
    

Demonstração - Filtrar Números Pares

Agora, tendo com lista de números, busca-se separar somente os números pares.

  • Sem list comprehension, seria algo assim:

    numeros = [1,  2,  3,  4,  5,  6,  7,  8,  9,  10]
    pares = []
    for num in numeros:
        if num %  2 ==  0:
            pares.append(num)
    print(pares)
    
  • Com list comprehension, pode-se fazer isso da seguinte forma:

    numeros = [1,  2,  3,  4,  5,  6,  7,  8,  9,  10]
    pares = [num for num in numeros if num %  2 ==  0]
    print(pares)
    

Demonstração - Transformar Strings em Maiúsculas

Imagine que fora criado uma lista de nomes e busca-se criar uma nova lista com os nomes em maiúsculas.

  • Sem list comprehension, você faria algo assim:
nomes = ['Ana', 'Bruno', 'Carla', 'David']
maiusculas = []
for nome in nomes:
    maiusculas.append(nome.upper())
print(maiusculas)
  • Com list comprehension, você pode fazer isso de uma maneira muito mais simples:
nomes = ['Ana', 'Bruno', 'Carla', 'David']
maiusculas = [nome.upper() for nome in nomes]
print(maiusculas)