Tópicos Avançados em Python

Introdução

Nesta apostila, vamos aprender quatro truques mágicos do Python que tornam o código mais rápido e fácil de entender. Vamos aprender de um jeito simples, como se estivéssemos brincando! Os tópicos são:

1. List Comprehension

O que é?

Imagine que você quer fazer uma lista com vários números. Normalmente, precisaríamos escrever várias linhas de código, mas com o List Comprehension, você faz isso em uma única linha! É como uma fórmula mágica para criar listas.

Como funciona?

[expressão for elemento in iterável if condição]

Exemplos Divertidos

  1. Quadrados dos números de 1 a 5:
quadrados = [x**2 for x in range(1, 6)]
print(quadrados)  # Saída: [1, 4, 9, 16, 25]
  1. Filtrando números pares de 1 a 10:
pares = [x for x in range(1, 11) if x % 2 == 0]
print(pares)  # Saída: [2, 4, 6, 8, 10]

Desafio:


2. Função Enumerate

O que é?

Imagine que você tem uma lista de brinquedos e quer saber o número de cada um. Em vez de contar manualmente, o Python faz isso para você usando o enumerate(). É como numerar figurinhas em um álbum.

Como funciona?

for índice, elemento in enumerate(iterável, início=0):

Exemplos Divertidos

  1. Numerando frutas:
frutas = ['maçã', 'banana', 'cereja']
for i, fruta in enumerate(frutas):
    print(i, fruta)
# Saída:
# 0 maçã
# 1 banana
# 2 cereja
  1. Começando do número 1:
for i, fruta in enumerate(frutas, 1):
    print(i, fruta)
# Saída:
# 1 maçã
# 2 banana
# 3 cereja

Desafio:


3. Função Reduce

O que é?

Pense em juntar vários legos para construir uma torre. O reduce() faz isso com números! Ele junta todos os itens de uma lista em um só resultado.

Como funciona?

from functools import reduce
reduce(função, iterável)

Exemplos Divertidos

  1. Somando números:
from functools import reduce
numeros = [1, 2, 3, 4, 5]
soma = reduce(lambda x, y: x + y, numeros)
print(soma)  # Saída: 15
  1. Encontrando o maior número:
maior = reduce(lambda a, b: a if a > b else b, numeros)
print(maior)  # Saída: 5

Desafio:


4. Função Map

O que é?

Imagine que você quer transformar todas as bolas vermelhas em azuis. O map() faz isso em listas! Ele aplica uma mudança a cada item.

Como funciona?

map(função, iterável)

Exemplos Divertidos

  1. Dobrando números:
numeros = [1, 2, 3, 4, 5]
dobro = list(map(lambda x: x * 2, numeros))
print(dobro)  # Saída: [2, 4, 6, 8, 10]
  1. Convertendo números em texto:
strings = list(map(str, numeros))
print(strings)  # Saída: ['1', '2', '3', '4', '5']

Desafio: