Seja muito bem-vindo à Academy Code Christ!
🌍 Academy Code Christ está disponível em vários idiomas.Fique à vontade para usar o tradutor na Barra lateral (Sidebar) e aprender no seu idioma.
Python 🐍 Etapa 06
Estruturas de Dados: Listas, Tuplas, Conjuntos e Dicionários
🎯 Por que precisamos de estruturas de dados?
Imagine que você precise armazenar 100 nomes de alunos. Poderia criar 100 variáveis diferentes:
aluno1 = "Ana"
aluno2 = "Bruno"
aluno3 = "Carla"
# ...
Mas isso seria insustentável.
As estruturas de dados permitem armazenar vários valores em uma única variável, de forma organizada e acessível.
Python oferece quatro principais tipos nativos:
|
Estrutura |
Tipo de dados |
Mutável |
Ordenado |
Exemplo |
|
Lista |
list |
✅ Sim |
✅ Sim |
[1, 2, 3] |
|
Tupla |
tuple |
❌ Não |
✅ Sim |
(1, 2, 3) |
|
Conjunto |
set |
✅ Sim* |
❌ Não |
{1, 2, 3} |
|
Dicionário |
dict |
✅ Sim |
⚙️ Parcial |
{"chave": "valor"} |
(*mutável no conteúdo, mas não permite elementos repetidos)
Vamos explorar cada uma delas em detalhes.
Listas (list): o tipo mais versátil
Listas armazenam sequências ordenadas de elementos e são mutáveis (podemos alterá-las facilmente).
Criando listas
frutas = ["maçã", "banana", "uva"]
numeros = [10, 20, 30, 40]
mistura = [1, "Python", 3.14, True]
Acessando elementos
Cada item tem um índice, começando em 0.
print(frutas[0]) # maçã
print(frutas[2]) # uva
Alterando valores
frutas[1] = "laranja"
print(frutas)
# ['maçã', 'laranja', 'uva']
Adicionando itens
● append() → adiciona no final
● insert(pos, valor) → insere em posição específica
● extend(lista) → adiciona vários itens
frutas.append("kiwi")
frutas.insert(1, "pera")
print(frutas)
Removendo itens
● remove(valor) → remove a primeira ocorrência
● pop(indice) → remove com base na posição
● clear() → limpa toda a lista
frutas.remove("uva")
frutas.pop(0)
print(frutas)
Verificando existência
if "banana" in frutas:
print("Tem banana na lista!")
Comprimento da lista
print(len(frutas))
Percorrendo listas
for f in frutas:
print("Fruta:", f)
Fatiamento de listas (slice)
Podemos pegar partes específicas de uma lista:
numeros = [0, 1, 2, 3, 4, 5, 6]
print(numeros[1:4]) # [1, 2, 3]
print(numeros[:3]) # [0, 1, 2]
print(numeros[3:]) # [3, 4, 5, 6]
print(numeros[::2]) # [0, 2, 4, 6]
Fatiamento é poderoso e usado em strings também!
Funções e métodos de lista
|
Método |
Descrição |
Exemplo |
|
append(x) |
Adiciona no final |
lista.append(5) |
|
insert(i, x) |
Insere na posição i |
lista.insert(0, "início") |
|
remove(x) |
Remove a primeira ocorrência |
lista.remove("banana") |
|
pop(i) |
Remove e retorna o elemento i |
lista.pop(2) |
|
sort() |
Ordena a lista |
lista.sort() |
|
reverse() |
Inverte a ordem |
lista.reverse() |
|
count(x) |
Conta ocorrências |
lista.count("uva") |
|
index(x) |
Retorna o índice de x |
lista.index("maçã") |
Compreensão de listas (list comprehension)
Uma forma moderna e compacta de criar listas com base em regras.
Exemplo tradicional:
quadrados = []
for i in range(1, 6):
quadrados.append(i ** 2)
Com list comprehension:
quadrados = [i ** 2 for i in range(1, 6)]
print(quadrados)
# [1, 4, 9, 16, 25]
Podemos incluir condições:
pares = [i for i in range(10) if i % 2 == 0]
print(pares)
# [0, 2, 4, 6, 8]
Tuplas (tuple): listas imutáveis
Tuplas são similares às listas, mas não podem ser alteradas
após criadas.
Elas são ideais para armazenar dados que não devem ser modificados.
cores = ("vermelho", "azul", "verde")
print(cores[0]) # vermelho
# cores[1] = "amarelo" -> Erro! Tuplas são imutáveis.
Quando usar tuplas?
● Dados fixos (dias da semana, meses, configurações).
● Como chaves em dicionários (por serem imutáveis).
● Para garantir integridade e segurança de dados.
Tuplas também suportam fatiamento, contagem e iteração como listas.
Conjuntos (set): coleções sem ordem e
sem repetição
Os conjuntos armazenam itens únicos, sem repetição, e não garantem ordem.
numeros = {1, 2, 3, 3, 2}
print(numeros)
# {1, 2, 3}
Adicionando e removendo
numeros.add(4)
numeros.remove(2)
print(numeros)
Operações matemáticas
Conjuntos são muito usados para comparações rápidas.
a = {1, 2, 3}
b = {3, 4, 5}
print(a | b) # União -> {1, 2, 3, 4, 5}
print(a & b) # Interseção -> {3}
print(a - b) # Diferença -> {1, 2}
print(a ^ b) # Diferença simétrica -> {1, 2, 4, 5}
Convertendo entre tipos
lista = [1, 2, 2, 3]
conjunto = set(lista)
print(conjunto) # {1, 2, 3}
tupla = tuple(lista)
print(tupla) # (1, 2, 2, 3)
Essas conversões são úteis, por exemplo, para eliminar valores duplicados rapidamente (de lista → set → lista).
Dicionários (dict): dados em formato de
chave e valor
Os dicionários armazenam pares chave → valor.
São como “mini bancos de dados” dentro do seu programa.
pessoa = {
"nome": "Lucas",
"idade": 25,
"cidade": "São Paulo"
}
Acessando valores
print(pessoa["nome"]) # Lucas
Adicionando e alterando
pessoa["profissao"] = "Engenheiro"
pessoa["idade"] = 26
print(pessoa)
Removendo itens
pessoa.pop("cidade")
del pessoa["idade"]
Iterando pelos dados
for chave, valor in pessoa.items():
print(chave, "->", valor)
Saída:
nome -> Lucas
profissao -> Engenheiro
Métodos úteis de dicionário
|
Método |
Função |
|
.keys() |
Retorna todas as chaves |
|
.values() |
Retorna todos os valores |
|
.items() |
Retorna pares (chave, valor) |
|
.get(chave, padrão) |
Evita erro se chave não existir |
|
.update({...}) |
Atualiza ou adiciona novas chaves |
Exemplo:
dados = {"a": 1, "b": 2}
dados.update({"b": 3, "c": 4})
print(dados)
# {'a': 1, 'b': 3, 'c': 4}
Aninhando estruturas
Podemos combinar diferentes tipos para criar estruturas complexas, como listas de dicionários ou dicionários de listas.
turma = [
{"nome": "Ana", "nota": 8},
{"nome": "Bruno", "nota": 6.5},
{"nome": "Carla", "nota": 9},
]
for aluno in turma:
print(aluno["nome"], "->", aluno["nota"])
Saída:
Ana -> 8
Bruno -> 6.5
Carla -> 9
Aplicação prática: controle de estoque simples
estoque = {
"maçã": 10,
"banana": 5,
"laranja": 8
}
for fruta, qtd in estoque.items():
print(f"{fruta}: {qtd} unidades")
produto = input("Qual fruta deseja comprar? ")
quantidade = int(input("Quantas unidades? "))
if produto in estoque:
if quantidade <= estoque[produto]:
estoque[produto] -= quantidade
print(f"Compra registrada. Restam {estoque[produto]} de {produto}.")
else:
print("Quantidade em estoque insuficiente.")
else:
print("Produto não encontrado.")
print("Estoque atualizado:", estoque)
Desafios práticos
1. Contador de vogais
Receba uma palavra e conte quantas
vogais contém (use lista ou tupla).
2. Remover duplicatas
Crie um programa que remova
automaticamente números repetidos de uma lista (use set).
3. Gerenciar contatos
Use um dicionário para armazenar
nomes e telefones. Permita adicionar, buscar e remover
contatos.
4. Notas de alunos
Use um dicionário onde a chave é o nome do
aluno e o valor é a média. Depois, mostre apenas os aprovados (média ≥ 7).
Esses exercícios consolidam seu domínio sobre todas as estruturas de dados.
Resumo
Nesta etapa, você aprendeu:
✅ Listas
→ armazenam elementos ordenados e mutáveis.
✅ Tuplas → parecidas com listas, mas
imutáveis.
✅ Conjuntos → eliminam elementos
repetidos e lidam com operações matemáticas.
✅ Dicionários → armazenam pares chave → valor,
ótimos para modelar dados reais.
✅ Como percorrer, modificar e combinar
essas estruturas para representar qualquer tipo de informação.
Essas são as bases lógicas para lidar com dados em Python.
Agora você tem o poder de armazenar, buscar, organizar e transformar informações de forma eficiente.
Na próxima etapa, entraremos em algo ainda mais textual e prático: manipulação de strings e entrada de dados, essencial para preparar programas que interajam com os usuários.

%20-%20Copia.png)
.png)
.png)
.png)
Postar um comentário