Python Tutorial - Conjunto de dados

  1. Criar Conjuntos Python
  2. Atualização do array Python
  3. Remover Elementos de um Conjunto Python
  4. Operações do array Python
  5. Métodos Python Set
  6. Outras operações do array Python
  7. Funções embutidas do array Python
  8. Python Frozenset

Nesta seção, você aprenderá como criar conjuntos em Python e como adicionar e remover elementos de conjuntos.

O array contém unique itens e é uma unordered lista de elementos.

Informações

O set é um objeto mutável para que você possa adicionar e excluir itens de um array.

Criar Conjuntos Python

Um array em Python pode ser criado utilizando o aparelho encaracolado {} e os itens são separados por vírgulas. Você também pode criar um array utilizando o método embutido set().

Os elementos de um array podem ser de diferentes tipos de dados. Os elementos de um array devem ser imutáveis. Por exemplo, você pode ter um tuple como elemento do array, mas não pode ter um array, dicionário ou lista como elementos do array.

>>> x = {3, 5, 7, 2, 4, 5}		
>>> print(x)		#prints the set variable
{2, 3, 4, 5, 7}
>>> print(type(x))		#checking type of x
<class 'set'>

Você poderia utilizar o método set() com parâmetros vazios para criar uma lista vazia. Se você escrever {} para criar um objeto vazio, ele será interpretado como um dicionário:

>>> x = {}
>>> print(type(x))
<class 'dict'>

>>> x = set()
>>> print(type(x))
<class 'set'>

Atualização do array Python

A indexação e o fatiamento não podem ser utilizados para alterar elementos de um array porque o set não é um tipo de dado encomendado.

Um único elemento pode ser adicionado em um array utilizando o método add(). Se você quiser adicionar mais de um elemento no array, então você tem que utilizar o método update().

>>> s = {2, 4}
>>> print(s)
{2, 4}

>>> s.add(6)
>>> print(s)
{2, 4, 6}

>>> s.update([2, 4, 6])
>>> print(s)
{2, 4, 6}

>>> s.update([5,6], {7, 8, 9})
>>> print(s)
{2, 4, 5, 6, 7, 8, 9}

Remover Elementos de um Conjunto Python

Para remover um elemento de um array você pode utilizar o método discard() ou o método remove().

A diferença entre esses métodos é que o método discard() não irá solicitar nada se o elemento a ser excluído não estiver no array, enquanto que o método remove() irá gerar um erro se o elemento a ser excluído não for encontrado.

>>> s = {2, 4, 5, 6, 7, 8, 9}
>>> print(s)
{2, 4, 5, 6, 7, 8, 9}

>>> s.discard(6)
>>> print(s)
{2, 4, 5, 7, 8, 9}

>>> s.remove(8)
>>> print(s)
{2, 4, 5, 7, 9}

>>> s.discard(6)		#no error
>>> s.remove(8)			#generated an error
Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    s.remove(8)
KeyError: 8

Você também pode utilizar pop() para remover um item de um array. pop() remove e retorna um elemento arbitrário do array.

>>> s = set("Python")
>>> s
{'o', 'n', 'h', 'P', 'y', 't'}
>>> s.pop()
o
>>> s.pop()
n
>>> s
{'h', 'P', 'y', 't'}
>>> s.clear()
>>> print(s)
set()

Você pode utilizar o método set clear() para limpar todos os elementos do array.

>>> s = set("Python")
>>> s.clear()
>>> s
set()

Operações do array Python

Você pode realizar operações como union, intersection, difference, e symmetric_difference.

Suponha que você tenha dois conjuntos x e y:

>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 10, 11, 12}

União

A União de dois conjuntos resulta em um novo array contendo todos os elementos de ambos os conjuntos.

Para realizar a operação de união, você pode utilizar o operador | ou o método union().

>>> print(x | y)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}

#using union() method on x
>>> x.union(y)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
#union on y
>>> y.union(x)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}

Intersecção do array Python

A intersecção de dois conjuntos resulta em um novo array contendo os itens que são comuns em ambos os conjuntos.

Para realizar a operação de interseção, você pode utilizar o operador & ou o método intersection().

>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x & y)
{1, 2, 6}

#using intersection() method on x
>>> x.intersection(y)
{1, 2, 6}
#intersection on y
>>> y.intersection(x)
{1, 2, 6}

Diferença de Conjuntos Python

A diferença de dois conjuntos resulta num novo array que contém elementos do primeiro array que não estão presentes no segundo array.

Por exemplo, x - y são elementos de x não em y. Da mesma forma, y - x são elementos de y não em x.

Para realizar a diferença, você pode utilizar o operador - ou o método difference().

>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x - y)
{3, 4, 5}

#using difference() method on x
>>> x.difference(y)
{3, 4, 5}
#diference on y
>>> y.difference(x)
{8, 9, 7}

Python Sets Diferença simétrica

A diferença simétrica de dois conjuntos resulta em um novo array que contém elementos que não são comuns em ambos os conjuntos.

Para realizar a diferença simétrica, você pode utilizar o operador ^ ou o método symmetric_difference().

>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x ^ y)
{3, 4, 5, 7, 8, 9}

#using symmetric_difference() method on x
>>> x.symmetric_difference(y)
{3, 4, 5, 7, 8, 9}
#symmetric_diference on y
>>> y.symmetric_difference(x)
{3, 4, 5, 7, 8, 9}

Métodos Python Set

A seguir está a lista de métodos que podem ser aplicados em conjuntos em Python:

Método Descrição
add() adicionar um elemento a um array
clear() limpar os elementos do array (limpa todo o array)
copy() devolver a cópia de um array
diference() devolver um novo array que contenha elementos do primeiro array que não estejam presentes no segundo array.
difference_update() remover todos os elementos de outro array do array atual
discard() remover um elemento específico de um array
intersection() devolver um novo array contendo os itens que são comuns em ambos os conjuntos.
intersection_update() actualizar um array com a intersecção deste conjunto com outro array
isdisjoint() retornar uma True quando dois conjuntos resultam em uma interseção nula
issubset() retornar um True quando outro array tiver o array atual
issuperset() retornar um True quando o array atual tiver outro array
pop() devolver um elemento de um array
remove() remover um elemento específico de um array. Se o elemento não estiver no array, será gerado um erro.
symmetric_difference() devolver um novo array que contém elementos que não são comuns em ambos os conjuntos.
symmetric_difference_update() actualizar um array com a diferença simétrica deste conjunto com outro array
union() devolver um novo array contendo todos os elementos de ambos os conjuntos.
update() actualizar um array com a união deste conjunto com outro array

Outras operações do array Python

Definir verificação de associação

A palavra-chave in testa se um item é ou não um membro do array.

>>> s = set("Blue")
>>> print('o' in s)
False
>>> print('l' in s)
True

Iterate Through a Set (Iterar através de um array)

Você pode iterar através de um array, utilizando o loop for:

for i in set("Blue"):
    print(i)

Resultado:

B
l
u
e

Funções embutidas do array Python

A seguir estão algumas das funções incorporadas que podem ser usadas com conjuntos para realizar diferentes tarefas:

Funções Descrição
all() retornar True quando todos os elementos do array são True. Também retorna True quando o array está vazio.
any() retornar True quando qualquer um dos elementos do array for True. Ele retorna False quando o array está vazio.
enumerate() retornar o índice e o valor de todos os elementos do array como um tuple. Ele retorna um objeto enumerar.
len() devolver o número de itens de um array ou o comprimento do array.
set() definir um array.
max() devolver o item máximo no array.
min() devolver o item mínimo no array.
sorted() devolver uma lista ordenada de elementos de um array.
sum() devolver a soma de todos os elementos do array.

Python Frozenset

Frozenset é um array especial cujos elementos não podem ser atualizados quando atribuídos uma vez. Os Frozensets são arrays imutáveis.

Como os conjuntos são mutáveis, você não pode usá-los como chave no dicionário, mas os conjuntos congelados são imutáveis, portanto, você pode usar conjuntos congelados como chaves de dicionário.

Um frozenset pode ser criado utilizando o método frozenset().

A seguir estão alguns dos métodos suportados pelo frozenset:

  • copy()
  • diference()
  • intersection()
  • isdisjoint()
  • issubset()
  • issuperset()
  • symmetric_diference()
  • union()
>>> x = frozenset([2,6,3,9])
>>> y = frozenset([6,1,2,4])
>>> x.difference(y)
frozenset({9, 3})