Conjuntos
Segundo a documentação oficial de Python, um conjunto é:
“Um objeto set é uma coleção não ordenada de objetos hasheáveis distintos.”
Em Python, um conjunto é representado por valores entre chaves (ex.: int, string ou qualquer objeto cuja classe implemente o método __hash__
) .
Obs: cuidado para não confundir com dicionários.
Declarando um conjunto vazio:
conjunto_vazio = set()
Criando um conjunto a partir de uma lista:
novo_conjunto = set(lista)
Criando um conjunto com valores:
novo_conjunto = {1, 2, 3, 4, 5}
Métodos mais usados:
Operador | Explicação | Exemplo | Saída | |
---|---|---|---|---|
elemento in conjunto | Verifica se um elemento pertence ao conjunto. | locais = {"Goiânia", "Nova Iguaçu", "Sul de Minas", "Sergipe"} "Sergipe" in locais |
True | |
elemento not in conjunto | Verifica se um elemento não pertence ao conjunto. | locais = {"Goiânia", "Nova Iguaçu", "Sul de Minas", | "Sergipe"} "Goiânia" not in locais |
False |
len( conjunto) | Retorna o tamanho do conjunto | locais = {"Goiânia", "Nova Iguaçu", "Sul de Minas", "Sergipe"} len(locais) |
4 | |
conjunto.add( elemento) | Adiciona um elemento a um conjunto. | locais = {"Parnaíba", "Rosana", "Blumenau"} locais.add("Macaé") |
{'Blumenau', 'Macaé', 'Parnaíba', 'Rosana'} | |
conjunto.remove( elemento) | Remove um elemento especificado de um conjunto e retorna None. Se não houver o elemento, um erro será lançado | locais = {'Blumenau', 'Macaé', 'Parnaíba', 'Rosana'} locais.remove('Macaé') |
{'Blumenau', 'Parnaíba', 'Rosana'} | |
conjunto.pop() | Retorna e exclui um elemento do conjunto. Não se determina o elemento escolhido, o algoritmo escolhe. | locais = {'Blumenau', 'Macaé', 'Parnaíba'} locais.pop() |
'Blumenau' | |
conjunto.clear() | Remove todos os elementos de um conjunto. | locais = {'Blumenau', 'Macaé', 'Parnaíba'} locais.clear() |
{} | |
conjunto.update( conjunto) | Adiciona os elementos do conjunto passado no conjunto original. | locais = {'Blumenau', 'Macaé'} locais.update('Rosana') |
{'Blumenau', 'Macaé', 'Parnaíba'} | |
conjunto.issubset(conjunto) | Retorna verdadeiro se o conjunto está contido no conjunto passado. | brasil = {"Paraíba", "Caxias do Sul", "Florianópolis", "São José dos Campos", "Manaus", "Sorocaba"} sp = {"Sorocaba", "São José dos Campos"} sp.issubset(brasil) |
True | |
conjunto.issuperset( conjunto) | Retorna verdadeiro se o conjunto contém o conjunto passado. | brasil = {"Paraíba", "Caxias do Sul", "Florianópolis", "São José dos Campos", "Manaus", "Sorocaba"} sp = {"Sorocaba", "São José dos Campos"} brasil.issuperset(sp) |
True | |
conjunto.union( conjunto) | Retorna um novo conjunto com a união dos elementos dos dois conjuntos. | brasil = {"Maceió", "Ribeirão Preto", "Teresina"} rs = {"Porto Alegre"} rs.union(brasil) |
{"Maceió", "Porto Alegre", "Ribeirão Preto", "Teresina"} | |
conjunto.isdisjoint( conjunto) | Retorna verdadeiro se os conjuntos são disjuntos, isto é, se eles não tem nenhum elemento em comum. | brasil = {"Maceió", "Ribeirão Preto", "Teresina"} rs = {"Porto Alegre"} rs.isdisjoint(brasil) |
True | |
conjunto. intersection(conjunto) | Retorna um novo conjunto com os elementos comuns entre o primeiro e segundo conjunto. É a operação inversa do symmetric difference. | multiplos_6 = {12, 18, 24} multiplos_4 = {8, 12, 16, 20, 24} multiplos_6.intersection(multiplos_4) |
{12,24} | |
conjunto. intersection_update( conjunto) | Retira do primeiro conjunto os elementos que não estão na intersecção entre os dois conjuntos. É a operação inversa do symmetric difference update. | multiplos_6 = {12, 18, 24} multiplos_4 = {8, 12, 16, 20, 24} multiplos_6.intersection_update(multiplos_4) |
{12,24} | |
conjunto. difference(conjunto) | Retorna um novo conjunto com os elementos do primeiro conjunto que não estão contidos no segundo. | multiplos_6 = {12, 18, 24} multiplos_4 = {8, 12, 16, 20, 24} multiplos_6.difference(multiplos_4) |
{18} | |
conjunto. difference_update( conjunto) | Retira os elementos da intersecção dos dois conjuntos do primeiro conjunto. | multiplos_6 = {12, 18, 24} multiplos_4 = {8, 12, 16, 20, 24} multiplos_6.difference_update(multiplos_4) |
{18} | |
conjunto. difference(conjunto) | Retorna um novo conjunto com os elementos únicos dos dois conjuntos. É a operação inversa do intersection. | multiplos_6 = {12, 18, 24} multiplos_4 = {8, 12, 16, 20, 24} multiplos_6.symmetric_difference(multiplos_4) |
{8, 16, 18, 20} | |
conjunto.symmetric_difference_update( conjunto) | Atualiza o primeiro conjunto com os elementos únicos dos dois conjunto. É a operação inversa do intersection_update. | multiplos_6 = {12, 18, 24} multiplos_4 = {8, 12, 16, 20, 24} multiplos_6.symmetric_difference_update(multiplos_4) |
{8, 16, 18, 20} |
Exercícios
Acesse a lista de exercícios para praticar o que acabamos de estudar juntas.