Estruturas de Dados: Listas, Tuplas, Conjuntos e Dicionários em Python 🐍 Etapa 06

 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



📚 Continue sua jornada de aprendizado


A Academy Code Christ oferece trilhas de aprendizado em diferentes tecnologias. Explore os cursos, acompanhe as aulas e avance em sua jornada de conhecimento acessando os menus correspondentes:



💻 Pratique o que você aprende


🎯 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

Python permite converter facilmente estruturas de dados:

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.



Este conteúdo faz parte do Academy Code Christ. 

Um projeto criado para ajudar jovens e iniciantes a aprender programação do zero, de forma simples e gratuita.

Nossa missão é compartilhar conhecimento e incentivar mais pessoas a descobrir que também podem aprender tecnologia, criar projetos e desenvolver novas habilidades.
Todo o conteúdo é disponibilizado gratuitamente, de forma clara, prática e 
sem enrolação. 

Você pode apoiar o projeto se quiser 
com um café. 



Post a Comment

Postagem Anterior Próxima Postagem