Aula 1 de 0
Em Progresso

22. Conjuntos (set)

Conjuntos, set em Python, são uma estrutura de dados que implementam ope­rações de união, intersecção e diferença, entre outras. A principal característica dessa estrutura de dados é não admitir repetição de elementos, como os conjun­tos da matemática. Outra característica importante é que conjuntos não man­têm a ordem de seus elementos. Vejamos algumas operações com conjuntos.

»> a = set()

»> a.add(l)

»> a.add(2)

»> a.add(3)

>» a

{1, 2, 3}

>» a.add(l)

»> a

{1, 2, 3}

No exemplo, veja que, ao adicionarmos 1 pela segunda vez, nada alteramos no conjunto em si, uma vez que 1 já fazia parte deste. A ordem relativa que vemos no exemplo é mera coincidência.

»> a.add(O)

»> a.add(-l)

{0, 1, 2, 3, -1}

Podemos testar se um elemento faz parte de um conjunto usando o operador in do Python:

»> 1 in a

True

»> -2 in a

False

Um set(conjunto) pode ser criado a partir de listas, tuplas e qualquer outra estrutura de dados que seja enumerável.

»> b = set([2, 3])

»> b

{2, 3}

Entre as operações disponíveis com conjuntos, temos a diferença entre conjun­tos, que utiliza o operador

»> a = {0, 1, 2, 3, -1}

»> b = {2, 3}

>» a – b

{0, 1, -1}

O resultado contém apenas os elementos de a que não estão presentes em b.

A união é realizada pelo operador |:

»> a = {0, 1, 2, 3, -1}

»> b = {2, 3}

»> c = set([4, 5, 6])

»> a | b

{0, 1, 2, 3, -1}

»> a | c

{0, 1, 2, 3, 4, 5, 6, -1}

Conjuntos (set) também possuem outras propriedades, como tamanho (número de elementos), que podem ser obtidas com o uso da função len:

»> len(a)

5

»> len(c)

3

Exercício 6.19 Escreva um programa que compare duas listas. Utilizando opera­ções com conjuntos, imprima:

  • os valores comuns às duas listas
  • os valores que só existem na primeira
  • os valores que existem apenas na segunda
  • uma lista com os elementos não repetidos das duas listas.
  • a primeira lista sem os elementos repetidos na segunda

Exercício 6.20 Escreva um programa que compare duas listas. Considere a primeira lista como a versão inicial e a segunda como a versão após alterações. Utilizando operações com conjuntos, seu programa deverá imprimir a lista de modificações entre essas duas versões, listando:

  • os elementos que não mudaram
  • os novos elementos
  • os elementos que foram removidos