Set vs Frozenset

Mamute congelado em uma geleira

Em Python, tanto set quanto frozenset são estruturas de dados que armazenam coleções não ordenadas de elementos únicos. A principal diferença está na mutabilidade.

Set (Mutável)

Um set é uma coleção mutável – você pode adicionar, remover e modificar elementos após a criação.

Características:

  • Mutável
  • Não ordenado
  • Elementos únicos
  • Não indexado

Exemplo de uso:

Frozenset (Imutável)

Um frozenset é uma versão imutável do set – após a criação, não pode ser modificado.

Características:

  • Imutável
  • Não ordenado
  • Elementos únicos
  • Pode ser usado como chave de dicionário

Exemplo de uso:

Vantagens do Set:

  • Pode ser modificado conforme necessário
  • Útil para operações que requerem alterações frequentes
  • Métodos como add(), remove(), discard(), etc.

Desvantagens do Set:

  • Não pode ser usado como chave de dicionário
  • Não é hasheável
  • Menos seguro em contextos que requerem imutabilidade

Vantagens do Frozenset:

  • Imutável e seguro para uso em contextos que requerem imutabilidade
  • Pode ser usado como chave de dicionário
  • É hasheável

Desvantagens do Frozenset:

  • Não pode ser modificado após a criação
  • Menos flexível para operações dinâmicas
  • Não possui métodos de modificação

Relação entre Set e Frozenset

É possível converter entre set e frozenset conforme necessário:

Guia de Decisão: Quando usar cada um

Use set quando:

  • Você precisa modificar a coleção frequentemente
  • Não precisa usar a coleção como chave de dicionário
  • Está trabalhando com dados que mudam dinamicamente

Use frozenset quando:

  • Você precisa de uma coleção imutável
  • Quer usar a coleção como chave de dicionário
  • Está trabalhando com dados que não devem mudar
  • Precisa de segurança contra modificações acidentais

Conclusão

Tanto set quanto frozenset são úteis em diferentes contextos. A escolha entre eles depende principalmente se você precisa de mutabilidade ou imutabilidade. Enquanto os sets são flexíveis e mutáveis, os frozensets oferecem imutabilidade e a capacidade de serem usados como chaves em dicionários.

Uso do from no python

remetente

O que é a palavra reservada from?

Em Python, from é uma palavra reservada utilizada em conjunto com a palavra import
para importar módulos, funções, classes ou variáveis específicas de um módulo. Esta construção permite
que você traga para o namespace atual elementos específicos de outros módulos, tornando o código mais
legível e evitando a necessidade de referenciar o módulo a cada uso.

Sintaxe Básica

A sintaxe geral para o uso de from é:

Ou para importar todos os elementos:

Exemplos de Uso

Importando uma função específica

Importando múltiplos elementos

Importando com alias

Importando de submódulos

Vantagens e Cuidados

Vantagens:

  • Torna o código mais limpo e legível
  • Evita a repetição do nome do módulo
  • Permite importar apenas o necessário

Cuidados:

  • O uso de from módulo import * pode poluir o namespace
  • Pode causar conflitos de nomes se não usado com cuidado
  • Pode reduzir a legibilidade ao dificultar a identificação da origem das funções

Comparação: import vs from import

Usando import

Vantagem: Clareza sobre a origem do elemento.

Usando from import

Vantagem: Código mais conciso e direto.