Aprenda sobre conjuntos em Python: uma coleção desordenada de elementos únicos. Entenda como criar conjuntos, usar a função set(), e as vantagens de utilizar essa estrutura de dados.
Descubra operações comuns em conjuntos, como união, interseção, e diferença, além de práticas para transformar conjuntos em listas e adicionar novos elementos de forma eficiente.
Se você tem interesse em artigos relacionado a categoria Python clique aqui!
O que é um conjunto em Python?

Em Python, um conjunto – conhecido como set – é uma coleção desordenada de elementos únicos. Diferente de outras estruturas de dados, como listas e tuplas, que podem conter elementos duplicados, os conjuntos são projetados para armazenar apenas valores distintos.
Esta característica faz dos conjuntos uma ferramenta valiosa para diversas operações na programação, especialmente aquelas que envolvem a eliminação de duplicatas ou a execução de operações matemáticas específicas, como união, interseção e diferença.
Os conjuntos em Python são definidos utilizando chaves { }
ou a função set()
. Por exemplo, criar um conjunto contendo os números 1, 2 e 3 pode ser feito de duas maneiras:
meu_conjunto = {1, 2, 3}
ou
meu_conjunto = {1, 2, 3}
Algumas das características mais importantes dos conjuntos em Python incluem:
- Imutabilidade dos elementos: Uma vez que os elementos são inseridos no conjunto, eles não podem ser modificados diretamente, embora o próprio conjunto seja mutável. Isso significa que você pode adicionar ou remover elementos do conjunto, mas os elementos em si não mudam.
- Não há ordem: Os elementos em um conjunto não possuem uma ordem definida. Por isso, operações de índice ou fatiamento que funcionam em listas não são aplicáveis aos conjuntos.
- Unicidade: Cada elemento aparece apenas uma vez em um conjunto, o que torna esta estrutura ideal para eliminar duplicatas em uma coleção de dados.
Vamos considerar um exemplo prático: Suponha que você tenha uma lista de números com duplicatas e deseja obter apenas os valores únicos. Transformando a lista em um conjunto, as duplicatas são automaticamente removidas:
lista_numeros = [1, 2, 2, 3, 4, 4, 5]
conjunto_numeros_unicos = set(lista_numeros)
print(conjunto_numeros_unicos)
# Saída: {1, 2, 3, 4, 5}
Este é o poder dos conjuntos em Python. Eles proporcionam uma maneira eficiente de garantir a unicidade dos dados e facilitam diversas operações matemáticas e lógicas de forma intuitiva e eficaz.
Como criar conjuntos em Python?

Criar conjuntos em Python é um processo direto e eficiente, fornecendo uma maneira clara de gerenciar coleções de elementos únicos. A função nativa set()
é frequentemente utilizada para este propósito.
A seguir, descrevemos diversos métodos para criar conjuntos, incluindo conjuntos vazios, conjuntos com elementos e os aspectos sintáticos envolvidos.
Para criar um conjunto vazio, utilize a função set()
sem nenhum argumento. Aqui está um exemplo simples:
meu_conjunto_vazio = set()
Note que utilizar apenas {}
, embora crie uma estrutura vazia, resulta em um dicionário, não um conjunto.
Para criar um conjunto com elementos, você pode passar um iterável, como uma lista ou uma tupla, como argumento para a função set()
. Veja o exemplo a seguir:
meu_conjunto_cidades = set(['São Paulo', 'Rio de Janeiro', 'Curitiba'])
Outra maneira de definir conjuntos em Python é utilizando a sintaxe de compreendendo, ou as chamadas “set comprehensions”:
quadrados = {x**2 for x in range(10)}
Essa abordagem é especialmente útil quando se deseja construir conjuntos a partir de iteráveis com critérios específicos. Além disso, a notação entre chaves ({}
) pode ser empregada diretamente para criar conjuntos com elementos especificados:
meu_conjunto_numeros = {1, 2, 3, 4, 5}
Ao utilizar essas formas de construção, é importante lembrar que conjuntos não mantêm a ordem dos elementos e não permitem duplicatas. Se elementos duplicados forem fornecidos ao criar um conjunto, eles serão automaticamente removidos, garantindo a unicidade dos itens.
Em resumo, dominar a criação de conjuntos em Python não só facilita a organização de elementos únicos, mas também aproveita as poderosas funcionalidades que a linguagem oferece para a gestão eficiente de dados. Praticando os métodos exemplificados, você estará preparado para tirar proveito completo dos conjuntos em suas aplicações Python.
Como utilizar a função set() em Python?

A função set()
em Python é uma ferramenta incorporada que facilita a criação de conjuntos a partir de outras coleções de dados, como listas, tuplas e até mesmo strings. Esta função é extremamente útil para diversas operações, como remoção de duplicatas, operações matemáticas de conjuntos (união, interseção, diferença), entre outras.
Para começar, vamos a um exemplo simples de conversão de uma lista em um conjunto:
pythonlista = [1, 2, 2, 3, 4, 4, 5]
conjunto = set(lista)
print(conjunto)
# Saída: {1, 2, 3, 4, 5}
Como podemos ver, a função set()
removeu os elementos duplicados da lista, resultando em um conjunto com elementos únicos. Agora, vejamos como converter uma tupla em um conjunto:
pythontupla = (1, 2, 2, 3, 4)
conjunto = set(tupla)
print(conjunto)
# Saída: {1, 2, 3, 4}
Outro uso comum da função set()
é quando precisamos criar conjuntos a partir de strings, onde cada caractere se torna um elemento do conjunto:
pythonstring = "abacaxi"
conjunto = set(string)
print(conjunto)
# Saída: {'a', 'x', 'b', 'c', 'i'}
Além das conversões, a função set()
é extremamente útil quando precisamos executar operações de conjunto em estruturas de dados complexas. Por exemplo, considere a necessidade de encontrar elementos únicos em uma lista de listas:
pythonlista_de_listas = [[1, 2, 3], [3, 4, 5], [5, 6, 7]]
conjunto = set()
for sublista in lista_de_listas:
conjunto.update(sublista)
print(conjunto)
# Saída: {1, 2, 3, 4, 5, 6, 7}
Neste exemplo, a função set()
juntamente com update()
nos permite criar um conjunto com todos os elementos únicos das sublistas, demonstrando a flexibilidade e a eficiência dos conjuntos em Python.
Utilizando a função set()
, consegue-se facilmente transformar coleções em conjuntos, promovendo melhor gestão de dados e extraindo o máximo de algumas operações importantes, como eliminação de duplicadas, filtragem e computação.
Vantagens de utilizar conjuntos em Python

Os conjuntos em Python oferecem diversas vantagens que os tornam extremamente úteis em várias situações. Uma das suas características mais notáveis é a eliminação automática de duplicatas.
Ao contrário de listas, os conjuntos armazenam apenas valores exclusivos, garantindo que cada elemento apareça uma única vez. Essa propriedade é extremamente vantajosa quando se trabalha com grandes conjuntos de dados onde a redundância precisa ser evitada.
Outra vantagem significativa é a eficiência nas operações matemáticas. Conjuntos suportam operações como união, interseção e diferença de forma nativa e rápida.
Por exemplo, a interseção de dois conjuntos pode ser realizada com o operador `&`, e a união com o operador `|`, operações que são geralmente mais rápidas em conjuntos do que em listas, devido à maneira como os conjuntos são implementados em Python.
Conjuntos também contribuem para a otimização do desempenho do código em diversas situações. Por exemplo, verificar se um item está presente em um conjunto é, em média, uma operação de tempo constante, O(1), enquanto a mesma operação em listas é linear, O(n).
Isso significa que, para grandes quantidades de dados, o uso de conjuntos pode resultar em uma melhora notável no desempenho.
Para ilustrar a eficiência dos conjuntos, considere o seguinte exemplo em que temos uma lista e um conjunto com os mesmos elementos. A tarefa é verificar a presença de um elemento específico:
lista = [1, 2, 3, 4, 5, 6]
conjunto = {1, 2, 3, 4, 5, 6}
# Verificando presença em lista5 in lista
# Tempo linear, O(n)
# Verificando presença em conjunto5 in conjunto
# Tempo constante, O(1)
Embora este exemplo seja simplista, ele demonstra a eficiência potencial dos conjuntos, especialmente quando se trabalha com grandes volumes de dados. Utilizar conjuntos no lugar de listas ou outras estruturas de dados pode resultar em um código mais limpo e otimizado.
Operações comuns em conjuntos (sets) em Python

Conjuntos (sets) em Python oferecem uma variedade de operações úteis que permitem a manipulação eficiente de dados. Quando estudamos conjuntos matemáticos, encontramos operações como união, intersecção, diferença e diferença simétrica.
Python implementa essas operações de maneira intuitiva, tornando-se uma ferramenta poderosa para a programação, especialmente em tarefas de análise de dados, eliminação de duplicatas e mais.
Para iniciar, a operação de união combina todos os elementos de dois conjuntos, eliminando duplicatas. Utilizamos o operador |
ou o método union()
. Exemplo:
conjunto1 = {1, 2, 3}
conjunto2 = {3, 4, 5}
uniao = conjunto1 | conjunto2
# ou
uniao = conjunto1.union(conjunto2)
print(uniao)
# Saída: {1, 2, 3, 4, 5}
A operação de intersecção resulta em um novo conjunto com apenas os elementos que estão presentes em ambos os conjuntos envolvidos. Utilizamos o operador &
ou o método intersection()
:
intersecao = conjunto1 & conjunto2
# ou
intersecao = conjunto1.intersection(conjunto2)
print(intersecao)
# Saída: {3}
A diferença entre dois conjuntos resulta em um conjunto contendo os elementos do primeiro conjunto que não estão no segundo. Essa operação é feita usando o operador -
ou o método difference()
:
diferenca = conjunto1 - conjunto2
# ou
diferenca = conjunto1.difference(conjunto2)
print(diferenca)
# Saída: {1, 2}
Por fim, a diferença simétrica resulta em um conjunto com elementos que estão em um conjunto ou no outro, mas não em ambos. Usamos o operador ^
ou o método symmetric_difference()
:
diff_simetrica = conjunto1 ^ conjunto2
# ou
diff_simetrica = conjunto1.symmetric_difference(conjunto2)
print(diff_simetrica)
# Saída: {1, 2, 4, 5}
Essas operações em conjuntos em Python podem simplificar a resolução de diversos problemas reais de programação, como filtragem de dados redundantes, comparação de grupos de dados, entre outros. Saber utilizar conjuntos adequadamente pode otimizar seu código e aumentar sua eficiência.
Resumidamente, a intersecção de conjuntos em Python é uma operação fundamental que permite identificar elementos que são comuns a dois ou mais conjuntos.
Esse processo é incrivelmente útil em diversas situações, como filtragem de dados e cálculos estatísticos. Em Python, a intersecção pode ser realizada de duas maneiras principais: através do método intersection()
ou do operador &
.
Método intersection()
O método intersection()
é uma abordagem intuitiva para obter a intersecção de conjuntos em Python. Considere os conjuntos A
e B
:
A = {1, 2, 3, 4}
B = {3, 4, 5, 6}
A intersecção desses conjuntos pode ser obtida com:
result = A.intersection(B)
# resultado: {3, 4}
Este método retorna um novo conjunto contendo apenas os elementos que são comuns a ambos A
e B
. Também é possível usar múltiplos conjuntos com intersection()
:
C = {4, 5, 6, 7}
result = A.intersection(B, C)
# resultado: {4}
Operador &
Outra maneira eficiente de calcular a intersecção é utilizando o operador &
, que oferece uma sintaxe mais concisa. Utilizando os mesmos conjuntos A
e B
:
C = {4, 5, 6, 7}
result = A.intersection(B, C)
# resultado: {4}
Este operador realiza a mesma operação que intersection()
mas de forma ainda mais direta e legível, especialmente em casos de interseções entre poucos conjuntos.
Considerações Especiais

Apesar da simplicidade, algumas nuances devem ser observadas ao operar intersecção de conjuntos em Python. Primeiro, é crucial notar que os conjuntos são desordenados e contêm apenas elementos únicos. Portanto, a ordem dos elementos na saída nunca é garantida.
Segundo, o uso excessivo de intersecções em conjuntos muito grandes pode afetar o desempenho do aplicativo, então estratégias de otimização devem ser consideradas. Finalmente, ao utilizar &
, certifique-se de que ambos os operandos sejam conjuntos; caso contrário, um erro TypeError
será levantado.
Ao compreender essas metodologias e sutilezas, você será capaz de utilizar as operações de intersecção de conjuntos de forma eficaz e eficiente em suas aplicações Python.
Transformando um conjunto em uma lista em Python
Conjuntos em Python, conhecidos como sets, são coleções desordenadas de elementos únicos. Embora possuam diversas funcionalidades úteis, às vezes há a necessidade de convertê-los em listas para realizar determinadas operações e manipulações.
A conversão de um conjunto em uma lista é um processo relativamente simples e direto, geralmente executado através da função list()
. Este método envolve passar o conjunto como argumento para o construtor de listas.
Vamos considerar um exemplo básico onde temos um conjunto e queremos transformá-lo em uma lista:
# Definindo um conjunto
meu_conjunto = {1, 2, 3, 4, 5}
# Convertendo o conjunto em uma lista
minha_lista = list(meu_conjunto)
print(minha_lista)
# Saída: [1, 2, 3, 4, 5]
No código acima, o conjunto meu_conjunto
é convertido em uma lista minha_lista
usando a função list()
. Esta operação é particularmente útil em contextos onde é importante preservar a ordem dos elementos ou quando se necessita acessar os elementos através de índices.
A transformação de conjuntos em listas possibilita a utilização de métodos e operações específicos de listas, como ordenação e manipulação de índices. Por exemplo, a ordenação de elementos de um conjunto só é possível após sua conversão para uma lista:
# Ordenando a lista
minha_lista = [1, 5, 4, 2, 3]
minha_lista_ordenada = sorted(minha_lista)
print(minha_lista_ordenada)
# Saída: [1, 2, 3, 4, 5]
Além disso, ao transformar conjuntos em listas, torna-se mais fácil aplicar outras funções de agregação e transformação oferecidas pela biblioteca padrão de Python. Isso é especialmente relevante em operações que envolvem sequência ordenada de elementos.
Essa flexibilidade na manipulação dos conjuntos demonstrada com o uso da função list()
para conversão destaca a versatilidade oferecida na programação em Python.
Dominar a conversão entre esses tipos de dados amplia as possibilidades de aplicação em diversos cenários de desenvolvimento, permitindo a criação de soluções mais robustas e eficientes.
Método para adicionar elementos a um conjunto em Python

Manipular conjuntos (sets) em Python é uma competência valiosa para desenvolvedores devido à eficiência inerente a essas estruturas de dados. Para adicionar elementos a um conjunto em Python, podemos utilizar o método add()
.
Este método é intuitivo e direto, permitindo que os desenvolvedores introduzam novos elementos de forma eficaz e segura.
Ao invocar add()
, o elemento especificado é incluído no conjunto, reiterando a característica fundamental dos conjuntos: a garantia de unicidade. Esta propriedade assegura que elementos duplicados não são permitidos, mantendo a integridade de dados sem a necessidade de verificar explicitamente por duplicatas. Por exemplo:
my_set = {1, 2, 3}
my_set.add(4)
print(my_set)
# Saída: {1, 2, 3, 4}
Como ilustrado, o número 4 foi adicionado com sucesso ao conjunto. Repetir a operação com o mesmo elemento não altera o conjunto:
my_set.add(4)
print(my_set)
# Saída: {1, 2, 3, 4}
Esta funcionalidade é particularmente vantajosa para grandes conjuntos de dados, proporcionando eficiência na operação e economizando recursos computacionais. Além disso, o método add()
facilita a manutenção da ordem e distinção dos dados, crucial em várias aplicações práticas.
No entanto, é relevante considerar o comportamento de desempenho ao interagir com conjuntos grandes. Conjuntos em Python são implementados como tabelas hash, garantindo um tempo de execução médio constante, O(1), para adições e verificações de pertencimento. Contudo, em situações onde a performance é crítica, é aconselhável analisar e testar o desempenho com os dados específicos de seu projeto.
Acrescentar elementos a um conjunto utilizando o método add()
oferece uma abordagem robusta e eficiente. Aplicando esse entendimento, desenvolvedores podem assegurar operações de conjuntos otimizadas e seguras, beneficiando-se da unicidade inerente e a performance elevada dos conjuntos em Python.