7: Estruturas de Dados Avançadas – Dicionários, Conjuntos e Tuplos

Na tua próxima tarefa na PyTalento, foste encarregado de trabalhar com dados mais complexos. Para gerir essas informações, vais precisar de novas estruturas de dados. Além das listas, que já aprendeste, o Python oferece outras formas de organizar dados: dicionários, conjuntos e tuplos. Cada uma destas estruturas é útil em diferentes contextos.

Objetivos

  • Compreender o que são dicionários, conjuntos e tuplos em Python.
  • Aprender a criar e manipular estas estruturas de dados.
  • Explorar casos de uso de cada uma destas estruturas.

Dicionários

Os dicionários em Python permitem armazenar pares de chave-valor. Isso significa que podes associar uma chave (como o nome de um estudante) a um valor (como a nota desse estudante). Esta estrutura é particularmente útil quando precisas de armazenar e aceder rapidamente a dados através de um identificador único.

Exemplo de um Dicionário:

      
  # Criar um dicionário de estudantes e as suas notas
  notas = {
      "Ana": 17,
      "João": 15,
      "Maria": 18
  }

  # Aceder à nota de um estudante
  print("A nota da Ana é:", notas["Ana"])
      
    

No exemplo acima, criamos um dicionário chamado notas que associa os nomes dos estudantes às suas respetivas notas. Para aceder à nota de um estudante, usamos a chave (neste caso, o nome do estudante).

Adicionar e Remover Elementos num Dicionário

Podes adicionar novos pares de chave-valor a um dicionário ou remover pares existentes.

Adicionar um Elemento:

      
  # Adicionar um novo estudante e a sua nota
  notas["Carlos"] = 16
  print("Dicionário atualizado:", notas)
      
    

Remover um Elemento:

      
  # Remover um estudante do dicionário
  del notas["João"]
  print("Dicionário atualizado:", notas)
      
    

O método del remove o par chave-valor correspondente à chave especificada.

Conjuntos (Sets)

Os conjuntos são coleções de elementos únicos e não ordenados. Isto significa que não podem conter duplicados. São particularmente úteis quando queres garantir que cada elemento aparece apenas uma vez ou quando precisas de verificar rapidamente se um determinado valor está presente num grupo de dados.

Exemplo de Conjunto:

      
  # Criar um conjunto de disciplinas
  disciplinas = {"Matemática", "Português", "Ciências"}

  # Adicionar uma nova disciplina
  disciplinas.add("História")

  # Verificar se uma disciplina está no conjunto
  if "Matemática" in disciplinas:
      print("A disciplina de Matemática está incluída.")

  # Imprimir todas as disciplinas
  print("Conjunto de disciplinas:", disciplinas)
      
    

No exemplo acima, criamos um conjunto de disciplinas e adicionamos uma nova disciplina. A função add() é usada para adicionar elementos, e o operador in permite-nos verificar se um elemento está presente no conjunto.

Tuplos

Os tuplos são semelhantes às listas, mas com uma diferença importante: os elementos de um tuplo são imutáveis, ou seja, não podem ser alterados após a sua criação. São úteis quando precisas de garantir que os dados permanecem constantes durante a execução do programa.

Exemplo de Tuplo:

      
  # Criar um tuplo de coordenadas
  coordenadas = (10.5, 25.3)

  # Aceder aos valores do tuplo
  print("Coordenada X:", coordenadas[0])
  print("Coordenada Y:", coordenadas[1])
      
    

A principal diferença entre tuplos e listas é que os elementos de um tuplo não podem ser modificados. No exemplo, criamos um tuplo que representa as coordenadas X e Y, e acedemos aos seus valores pelos índices.

Diferenças e Usos de Cada Estrutura

  • Dicionários: Úteis para associar pares de chave-valor, como um nome a uma nota ou um ID a uma descrição.
  • Conjuntos: Utilizados para garantir que os elementos são únicos e verificar a presença rápida de um elemento num grupo.
  • Tuplos: Ideais para dados que não podem ser alterados após a sua criação, como coordenadas ou configurações fixas.

Exercício Prático

A empresa PyTalento pediu-te que desenvolvas um programa que utilize dicionários, conjuntos e tuplos para organizar dados. O programa deve seguir os seguintes passos:

Requisitos:

  1. Criar um dicionário que associe o nome de estudantes às suas notas.
  2. Adicionar e remover estudantes ao dicionário conforme necessário.
  3. Criar um conjunto de disciplinas únicas e verificar se uma disciplina específica está incluída.
  4. Criar um tuplo com três valores que representem um conjunto de dados imutáveis (como coordenadas).

Exemplo de Código:

      
  # Dicionário de estudantes e notas
  notas = {"Ana": 17, "João": 15, "Maria": 18}

  # Adicionar e remover um estudante
  notas["Carlos"] = 16
  del notas["João"]

  # Conjunto de disciplinas
  disciplinas = {"Matemática", "Português", "Ciências"}
  disciplinas.add("História")

  if "Matemática" in disciplinas:
      print("A disciplina de Matemática está incluída.")

  # Tuplo de coordenadas
  coordenadas = (10.5, 25.3, 50.1)
  print("Coordenadas:", coordenadas)
      
    
<< 6: Listas – Compreender e... Índice 8.1: Trabalhar com Fichei... >>