SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
Claudio Esperança
Python:
Conjuntos
Conjuntos
 Um conjunto é uma coleção de valores distintos
 Pode-se implementar conjuntos de diversas formas
 Uma lista de valores
 Têm-se que tomar o cuidado de evitar valores duplicados
 Um dicionário
 As chaves de um dicionário são necessariamente únicas
 O valor associado a cada chave pode ser qualquer um
 Python suporta um tipo primitivo chamado set que
implementa conjuntos
 Mais apropriado do que o uso de listas ou dicionários
O tipo set
 Pode-se construir um set usando a construção
set(sequência)‫‏‬
 Onde sequência é uma sequência qualquer, como uma lista,
uma tupla ou uma string
 Caso use-se uma lista, os elementos devem ser imutáveis
 Exemplos:
>>> set((1,2,3))‫‏‬
set([1, 2, 3])‫‏‬
>>> set ("xxabc")‫‏‬
set(['a', 'x', 'c', 'b'])‫‏‬
>>> set ([1,(1,2),3,1])‫‏‬
set([(1, 2), 1, 3])‫‏‬
>>> set ([1,[1,2],3,1])‫‏‬
Trabalhando com sets
 x in s True se o elemento x pertence a s
 s.add(x)  Inclui o elemento x em s
 s.copy()  Retorna uma cópia de s
 s.union(r)  Retorna a união entre s e r
 s.intersection(r)  Retorna a interseção entre s e r
 s.difference(r)  Retorna a diferença entre s e r
 list(s)  Retorna os elementos de s numa lista
 tuple(s)  Retorna os elementos de s numa tupla
Exemplos
>>> s = set([1,2,3])‫‏‬
>>> r = set([2,5,9,1])‫‏‬
>>> 1 in s
True
>>> 1 in r
True
>>> s.union(r)‫‏‬
set([1, 2, 3, 5, 9])‫‏‬
>>> s.intersection(r)‫‏‬
set([1, 2])‫‏‬
>>> s.difference(r)‫‏‬
set([3])‫‏‬
>>> r.difference(s)‫‏‬
set([9, 5])‫‏‬
>>> s.add(5)‫‏‬
>>> s.intersection(r)‫‏‬
set([1, 2, 5])‫‏‬
Iterando sobre sets
 Pode-se também usar o comando for com sets
 Observe-se que a iteração não necessariamente visita os
elementos na mesma ordem em que eles foram inseridos
no conjunto
 Exemplo:
>>> s = set([1,2,9,100,"a"])‫‏‬
>>> for x in s:
print x,
a 1 2 100 9
Outros métodos
 s.discard(x)  Exclui o elemento x de s (se existir)‫‏‬
 s.issubset(r)  True sse s contido em r
 s.issuperset(r)  True sse s contém r
 s.symmetric_difference(r)  Retorna a diferença
simétrica entre s e r, isto é, a união entre s e r menos a
interseção de s e r
 s.update(r)  mesmo que s = s.union(r)‫‏‬
 s.intersection_update(r)  mesmo que
s = s.intersection(r)‫‏‬
 s.difference_update(r)  mesmo que
s = s.difference(r)‫‏‬
Exemplos
>>> s = set([1,2,3])‫‏‬
>>> r = set([2,5,9])‫‏‬
>>> s.update(r)‫‏‬
>>> s
set([1, 2, 3, 5, 9])‫‏‬
>>> s.issuperset(r)‫‏‬
True
>>> r.issubset(s)‫‏‬
True
>>> s.discard(5)‫‏‬
>>> s
set([1, 2, 3, 9])‫‏‬
>>> s.symmetric_difference(r)‫‏‬
set([3, 5, 1])‫‏‬
Exercícios
 Escreva um programa que recebe vários nomes
completos de pessoas e imprime apenas os primeiros
nomes, sem repetição
 Escreva um programa que recebe duas listas de valores e
verifica se uma lista é subconjunto ou subconjunto próprio
da outra.
 Em um jantar serão servidas duas sobremesas. Das 10
pessoas presentes no jantar, 5 comeram a sobremesa X,
7 comeram a sobremesa Y e 3 comeram as duas.
Escreva um programa que receba os nomes das pessoas
que estavam no jantar e os nomes das pessoas que
comeram cada uma das sobremesas. Determine quais

Más contenido relacionado

Similar a Python Conjuntos: Uma introdução concisa aos conjuntos em Python

11 programando em python - conjuntos
 11   programando em python - conjuntos 11   programando em python - conjuntos
11 programando em python - conjuntosVictor Marcelino
 
Programando em python tuplas e strings
Programando em python   tuplas e stringsProgramando em python   tuplas e strings
Programando em python tuplas e stringssamuelthiago
 
005 programando em python - tuplas e strings
005   programando em python - tuplas e strings005   programando em python - tuplas e strings
005 programando em python - tuplas e stringsLeandro Barbosa
 
Collection Java (2/2)
Collection Java (2/2)Collection Java (2/2)
Collection Java (2/2)rdgse
 
Aula02-teoConj.pptx
Aula02-teoConj.pptxAula02-teoConj.pptx
Aula02-teoConj.pptxEizoKato
 
4234 mysql
4234 mysql4234 mysql
4234 mysqlherbam
 
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricasCurso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricasLeonardo Melo Santos
 
Arrays / Vetores / Matrizes em programação
Arrays / Vetores / Matrizes em programaçãoArrays / Vetores / Matrizes em programação
Arrays / Vetores / Matrizes em programaçãoJaime Martins
 

Similar a Python Conjuntos: Uma introdução concisa aos conjuntos em Python (20)

Programando em python: conjuntos
Programando em python:   conjuntosProgramando em python:   conjuntos
Programando em python: conjuntos
 
11 programando em python - conjuntos
 11   programando em python - conjuntos 11   programando em python - conjuntos
11 programando em python - conjuntos
 
Java básico - Módulo 06: Array
Java básico - Módulo 06: ArrayJava básico - Módulo 06: Array
Java básico - Módulo 06: Array
 
Capítulo 6
Capítulo 6Capítulo 6
Capítulo 6
 
Programando em python tuplas e strings
Programando em python   tuplas e stringsProgramando em python   tuplas e strings
Programando em python tuplas e strings
 
005 programando em python - tuplas e strings
005   programando em python - tuplas e strings005   programando em python - tuplas e strings
005 programando em python - tuplas e strings
 
Trabalho vetores
Trabalho vetoresTrabalho vetores
Trabalho vetores
 
Collection Java (2/2)
Collection Java (2/2)Collection Java (2/2)
Collection Java (2/2)
 
Aula02-teoConj.pptx
Aula02-teoConj.pptxAula02-teoConj.pptx
Aula02-teoConj.pptx
 
Java 06 Strings Arrays
Java 06 Strings ArraysJava 06 Strings Arrays
Java 06 Strings Arrays
 
4234 mysql
4234 mysql4234 mysql
4234 mysql
 
Apostila php 01
Apostila php 01Apostila php 01
Apostila php 01
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
Curso de PHP - Arrays
Curso de PHP - ArraysCurso de PHP - Arrays
Curso de PHP - Arrays
 
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricasCurso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
 
Grupo2
Grupo2Grupo2
Grupo2
 
Arrays / Vetores / Matrizes em programação
Arrays / Vetores / Matrizes em programaçãoArrays / Vetores / Matrizes em programação
Arrays / Vetores / Matrizes em programação
 
PHP Básico - Parte 3
PHP Básico - Parte 3PHP Básico - Parte 3
PHP Básico - Parte 3
 
Java 12 Colecoes
Java 12 ColecoesJava 12 Colecoes
Java 12 Colecoes
 
05 listas
05 listas05 listas
05 listas
 

Más de Leandro Barbosa

Más de Leandro Barbosa (11)

013 programando em python - arquivos
013   programando em python - arquivos013   programando em python - arquivos
013 programando em python - arquivos
 
007 programando em python - funcoes
007   programando em python - funcoes007   programando em python - funcoes
007 programando em python - funcoes
 
006 programando em python - dicionarios
006   programando em python - dicionarios006   programando em python - dicionarios
006 programando em python - dicionarios
 
03 algoritmos basicos
03 algoritmos basicos03 algoritmos basicos
03 algoritmos basicos
 
02 while
02 while02 while
02 while
 
01 variaveis io if
01 variaveis io if01 variaveis io if
01 variaveis io if
 
05 biomassa
05 biomassa05 biomassa
05 biomassa
 
python.comandos
python.comandospython.comandos
python.comandos
 
python.tipos
python.tipospython.tipos
python.tipos
 
Estrutura cristalina
Estrutura cristalinaEstrutura cristalina
Estrutura cristalina
 
Lista de integração
Lista de integraçãoLista de integração
Lista de integração
 

Python Conjuntos: Uma introdução concisa aos conjuntos em Python

  • 2. Conjuntos  Um conjunto é uma coleção de valores distintos  Pode-se implementar conjuntos de diversas formas  Uma lista de valores  Têm-se que tomar o cuidado de evitar valores duplicados  Um dicionário  As chaves de um dicionário são necessariamente únicas  O valor associado a cada chave pode ser qualquer um  Python suporta um tipo primitivo chamado set que implementa conjuntos  Mais apropriado do que o uso de listas ou dicionários
  • 3. O tipo set  Pode-se construir um set usando a construção set(sequência)‫‏‬  Onde sequência é uma sequência qualquer, como uma lista, uma tupla ou uma string  Caso use-se uma lista, os elementos devem ser imutáveis  Exemplos: >>> set((1,2,3))‫‏‬ set([1, 2, 3])‫‏‬ >>> set ("xxabc")‫‏‬ set(['a', 'x', 'c', 'b'])‫‏‬ >>> set ([1,(1,2),3,1])‫‏‬ set([(1, 2), 1, 3])‫‏‬ >>> set ([1,[1,2],3,1])‫‏‬
  • 4. Trabalhando com sets  x in s True se o elemento x pertence a s  s.add(x)  Inclui o elemento x em s  s.copy()  Retorna uma cópia de s  s.union(r)  Retorna a união entre s e r  s.intersection(r)  Retorna a interseção entre s e r  s.difference(r)  Retorna a diferença entre s e r  list(s)  Retorna os elementos de s numa lista  tuple(s)  Retorna os elementos de s numa tupla
  • 5. Exemplos >>> s = set([1,2,3])‫‏‬ >>> r = set([2,5,9,1])‫‏‬ >>> 1 in s True >>> 1 in r True >>> s.union(r)‫‏‬ set([1, 2, 3, 5, 9])‫‏‬ >>> s.intersection(r)‫‏‬ set([1, 2])‫‏‬ >>> s.difference(r)‫‏‬ set([3])‫‏‬ >>> r.difference(s)‫‏‬ set([9, 5])‫‏‬ >>> s.add(5)‫‏‬ >>> s.intersection(r)‫‏‬ set([1, 2, 5])‫‏‬
  • 6. Iterando sobre sets  Pode-se também usar o comando for com sets  Observe-se que a iteração não necessariamente visita os elementos na mesma ordem em que eles foram inseridos no conjunto  Exemplo: >>> s = set([1,2,9,100,"a"])‫‏‬ >>> for x in s: print x, a 1 2 100 9
  • 7. Outros métodos  s.discard(x)  Exclui o elemento x de s (se existir)‫‏‬  s.issubset(r)  True sse s contido em r  s.issuperset(r)  True sse s contém r  s.symmetric_difference(r)  Retorna a diferença simétrica entre s e r, isto é, a união entre s e r menos a interseção de s e r  s.update(r)  mesmo que s = s.union(r)‫‏‬  s.intersection_update(r)  mesmo que s = s.intersection(r)‫‏‬  s.difference_update(r)  mesmo que s = s.difference(r)‫‏‬
  • 8. Exemplos >>> s = set([1,2,3])‫‏‬ >>> r = set([2,5,9])‫‏‬ >>> s.update(r)‫‏‬ >>> s set([1, 2, 3, 5, 9])‫‏‬ >>> s.issuperset(r)‫‏‬ True >>> r.issubset(s)‫‏‬ True >>> s.discard(5)‫‏‬ >>> s set([1, 2, 3, 9])‫‏‬ >>> s.symmetric_difference(r)‫‏‬ set([3, 5, 1])‫‏‬
  • 9. Exercícios  Escreva um programa que recebe vários nomes completos de pessoas e imprime apenas os primeiros nomes, sem repetição  Escreva um programa que recebe duas listas de valores e verifica se uma lista é subconjunto ou subconjunto próprio da outra.  Em um jantar serão servidas duas sobremesas. Das 10 pessoas presentes no jantar, 5 comeram a sobremesa X, 7 comeram a sobremesa Y e 3 comeram as duas. Escreva um programa que receba os nomes das pessoas que estavam no jantar e os nomes das pessoas que comeram cada uma das sobremesas. Determine quais