SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

PDF
Programando em python conjuntos
PDF
Lista Encadeada: Inserção no Início
PDF
Lista Encadeada Simples: Inserção no Final
PDF
004 programando em python - listas
PPT
Aula Prolog 09 - Listas
PDF
Programando em python listas
PDF
PPT
5.II SACIC - 2010 - Desenvolvimento de Aplicações para TVDigital com NCLUA
Programando em python conjuntos
Lista Encadeada: Inserção no Início
Lista Encadeada Simples: Inserção no Final
004 programando em python - listas
Aula Prolog 09 - Listas
Programando em python listas
5.II SACIC - 2010 - Desenvolvimento de Aplicações para TVDigital com NCLUA

Semelhante a 011 programando em python - conjuntos (20)

PDF
Programando em python: conjuntos
PDF
11 programando em python - conjuntos
PPT
Java básico - Módulo 06: Array
PPTX
Capítulo 6
PDF
Programando em python tuplas e strings
PPT
004 - Programando em Python - Listas.ppt
PDF
005 programando em python - tuplas e strings
PPT
Trabalho vetores
PPTX
Curso de Java 7 - (ArrayList, Collections,(Set, List, Queue, Map)).pptx
PDF
Collection Java (2/2)
PDF
Programacao II Aula 3 Arrays.pdf bom para estudantes de programação 1
PPT
005 - Programando em Python - Tuplas e Strings.ppt
PPTX
Aula02-teoConj.pptx
ODP
Java 06 Strings Arrays
PDF
Apostila php 01
PDF
4234 mysql
ODP
Linguagem R
PDF
Curso de PHP - Arrays
PDF
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
Programando em python: conjuntos
11 programando em python - conjuntos
Java básico - Módulo 06: Array
Capítulo 6
Programando em python tuplas e strings
004 - Programando em Python - Listas.ppt
005 programando em python - tuplas e strings
Trabalho vetores
Curso de Java 7 - (ArrayList, Collections,(Set, List, Queue, Map)).pptx
Collection Java (2/2)
Programacao II Aula 3 Arrays.pdf bom para estudantes de programação 1
005 - Programando em Python - Tuplas e Strings.ppt
Aula02-teoConj.pptx
Java 06 Strings Arrays
Apostila php 01
4234 mysql
Linguagem R
Curso de PHP - Arrays
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
Anúncio

Mais de Leandro Barbosa (12)

PDF
013 programando em python - arquivos
PDF
007 programando em python - funcoes
PDF
006 programando em python - dicionarios
PDF
05 listas
PDF
03 algoritmos basicos
PDF
02 while
PDF
01 variaveis io if
PDF
05 biomassa
PDF
python.comandos
PDF
python.tipos
PPT
Estrutura cristalina
PDF
Lista de integração
013 programando em python - arquivos
007 programando em python - funcoes
006 programando em python - dicionarios
05 listas
03 algoritmos basicos
02 while
01 variaveis io if
05 biomassa
python.comandos
python.tipos
Estrutura cristalina
Lista de integração
Anúncio

011 programando em python - conjuntos

  • 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