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.