1. Tipos de Dados Básicos
2. Variáveis e Atribuições
- Tipo de atribuições em variáveis
- Variável Local e Global, comentários e documentação em Python
- Conversões de tipos
Python Básico
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.
Um set é uma coleção mutável – você pode adicionar, remover e modificar elementos após a criação.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# Criando um set meu_set = {1, 2, 3, 4, 5} print("Set original:", meu_set) # Adicionando elementos meu_set.add(6) print("Após add(6):", meu_set) # Removendo elementos meu_set.remove(3) print("Após remove(3):", meu_set) # Tentando usar como chave de dicionário (gera erro) try: dicionario = {meu_set: "valor"} except TypeError as e: print("Erro ao usar set como chave:", e) |
Um frozenset é uma versão imutável do set – após a criação, não pode ser modificado.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# Criando um frozenset meu_frozenset = frozenset([1, 2, 3, 4, 5]) print("Frozenset original:", meu_frozenset) # Tentativas de modificação (geram erro) try: meu_frozenset.add(6) except AttributeError as e: print("Erro ao tentar add():", e) try: meu_frozenset.remove(3) except AttributeError as e: print("Erro ao tentar remove():", e) # Usando como chave de dicionário (funciona) dicionario = {meu_frozenset: "valor"} print("Como chave de dicionário:", dicionario[meu_frozenset]) |
É possível converter entre set e frozenset conforme necessário:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# Convertendo set para frozenset meu_set = {1, 2, 3, 4, 5} meu_frozenset = frozenset(meu_set) print("Set convertido para frozenset:", meu_frozenset) # Convertendo frozenset para set outro_set = set(meu_frozenset) print("Frozenset convertido para set:", outro_set) # Operações entre set e frozenset set_a = {1, 2, 3} frozenset_b = frozenset([3, 4, 5]) # União uniao = set_a | frozenset_b print("União:", uniao) # Interseção intersecao = set_a & frozenset_b print("Interseção:", intersecao) |
Use set quando:
Use frozenset quando:
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.