kb.erickguedes.com
Python: De Noob a Hero

Estruturas de Dados

Aula 3 de 10

Listas

# Criar e acessar
frutas = ["maçã", "banana", "laranja"]
print(frutas[0])        # maçã
print(frutas[-1])       # laranja
print(frutas[1:3])      # ['banana', 'laranja']

# Modificar
frutas.append("uva")         # adiciona ao final
frutas.insert(1, "pera")     # insere na posição 1
frutas.remove("banana")      # remove por valor
item = frutas.pop()          # remove e retorna o último
item = frutas.pop(0)         # remove e retorna índice 0
frutas.sort()                # ordena in-place
frutas.reverse()

# Métodos úteis
len(frutas)                  # tamanho
"maçã" in frutas             # True/False
", ".join(frutas)            # "maçã, banana, laranja"

Tuplas (Imutáveis)

coordenadas = (10, 20)
x, y = coordenadas           # unpacking
print(x)                     # 10

# Úteis para valores que não devem mudar
dias_semana = ("seg", "ter", "qua", "qui", "sex", "sáb", "dom")

Dicionários

usuario = {
    "nome": "João",
    "email": "[email protected]",
    "ativo": True,
    "tags": ["admin", "dev"]
}

print(usuario["nome"])             # Acesso (KeyError se não existe)
print(usuario.get("telefone"))     # None (seguro)
print(usuario.get("telefone", "N/A"))  # com default

# Modificar
usuario["telefone"] = "1199999"
usuario.update({"cargo": "senior", "salario": 10000})

# Iterar
for chave in usuario:
    print(chave, usuario[chave])

for chave, valor in usuario.items():
    print(f"{chave}: {valor}")

for valor in usuario.values():
    print(valor)

Conjuntos (Set)

a = {1, 2, 3, 4, 5}
b = {4, 5, 6, 7, 8}

print(a | b)   # união: {1, 2, 3, 4, 5, 6, 7, 8}
print(a & b)   # interseção: {4, 5}
print(a - b)   # diferença: {1, 2, 3}
print(a ^ b)   # diferença simétrica: {1, 2, 3, 6, 7, 8}

# Úteis para remover duplicatas
numeros = [1, 2, 2, 3, 3, 3]
unicos = list(set(numeros))  # [1, 2, 3]

String Methods

texto = "  Python é Poderoso  "
texto.strip()               # "Python é Poderoso"
texto.lower()               # "python é poderoso"
texto.upper()               # "PYTHON É PODEROSO"
texto.replace("Poderoso", "Incrível")
texto.split()               # ['Python', 'é', 'Poderoso']
"-".join(["a", "b", "c"])   # "a-b-c"
texto.startswith("Py")      # True
texto.find("Poderoso")      # índice (ou -1)

Escolha a estrutura de dados certa: listas para sequências ordenadas, sets para unicidade e operações de conjunto, dicts para mapeamentos.