SlideShare uma empresa Scribd logo
1 de 8
Baixar para ler offline
Python:
Conjuntos



Claudio Esperança
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])
   ERROR...
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])

Mais conteúdo relacionado

Semelhante a Programando em python conjuntos

004 programando em python - listas
004   programando em python - listas004   programando em python - listas
004 programando em python - listas
Leandro Barbosa
 
Programando em python listas
Programando em python   listasProgramando em python   listas
Programando em python listas
samuelthiago
 
Programando em python tuplas e strings
Programando em python   tuplas e stringsProgramando em python   tuplas e strings
Programando em python tuplas e strings
samuelthiago
 
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
Leandro Barbosa
 
4234 mysql
4234 mysql4234 mysql
4234 mysql
herbam
 
Curso java 08 - mais sobre coleções
Curso java   08 - mais sobre coleçõesCurso java   08 - mais sobre coleções
Curso java 08 - mais sobre coleções
Maurício Linhares
 
04 programando em python - listas
 04   programando em python - listas 04   programando em python - listas
04 programando em python - listas
Victor Marcelino
 

Semelhante a Programando em python conjuntos (20)

Programando em python: conjuntos
Programando em python:   conjuntosProgramando em python:   conjuntos
Programando em python: conjuntos
 
004 programando em python - listas
004   programando em python - listas004   programando em python - listas
004 programando em python - listas
 
python
pythonpython
python
 
Programando em python listas
Programando em python   listasProgramando em python   listas
Programando em python listas
 
Aula02-teoConj.pptx
Aula02-teoConj.pptxAula02-teoConj.pptx
Aula02-teoConj.pptx
 
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
 
Collection Java (2/2)
Collection Java (2/2)Collection Java (2/2)
Collection Java (2/2)
 
4234 mysql
4234 mysql4234 mysql
4234 mysql
 
Apostila php 01
Apostila php 01Apostila php 01
Apostila php 01
 
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
 
Java 12 Colecoes
Java 12 ColecoesJava 12 Colecoes
Java 12 Colecoes
 
Curso java 08 - mais sobre coleções
Curso java   08 - mais sobre coleçõesCurso java   08 - mais sobre coleções
Curso java 08 - mais sobre coleções
 
Aula - Estruturas de Dados em Python (Curso de Python Básico -- FATEC SENAI M...
Aula - Estruturas de Dados em Python (Curso de Python Básico -- FATEC SENAI M...Aula - Estruturas de Dados em Python (Curso de Python Básico -- FATEC SENAI M...
Aula - Estruturas de Dados em Python (Curso de Python Básico -- FATEC SENAI M...
 
Trabalho vetores
Trabalho vetoresTrabalho vetores
Trabalho vetores
 
05 listas
05 listas05 listas
05 listas
 
PHP Básico - Parte 3
PHP Básico - Parte 3PHP Básico - Parte 3
PHP Básico - Parte 3
 
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
 
04 programando em python - listas
 04   programando em python - listas 04   programando em python - listas
04 programando em python - listas
 

Mais de samuelthiago

Interface grafica em_java_parte_v
Interface grafica em_java_parte_vInterface grafica em_java_parte_v
Interface grafica em_java_parte_v
samuelthiago
 
Interface grafica em_java_parte_iv
Interface grafica em_java_parte_ivInterface grafica em_java_parte_iv
Interface grafica em_java_parte_iv
samuelthiago
 
Interface grafica em_java_parte_iii
Interface grafica em_java_parte_iiiInterface grafica em_java_parte_iii
Interface grafica em_java_parte_iii
samuelthiago
 
Interface grafica em_java_parte_ii
Interface grafica em_java_parte_iiInterface grafica em_java_parte_ii
Interface grafica em_java_parte_ii
samuelthiago
 
Interface grafica em_java_parte_i
Interface grafica em_java_parte_iInterface grafica em_java_parte_i
Interface grafica em_java_parte_i
samuelthiago
 
Poo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_iiPoo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_ii
samuelthiago
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_j
samuelthiago
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_java
samuelthiago
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_j
samuelthiago
 
01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)
samuelthiago
 

Mais de samuelthiago (20)

Eclipse i (1)
Eclipse i (1)Eclipse i (1)
Eclipse i (1)
 
Html básico
Html básicoHtml básico
Html básico
 
Interface grafica em_java_parte_v
Interface grafica em_java_parte_vInterface grafica em_java_parte_v
Interface grafica em_java_parte_v
 
Interface grafica em_java_parte_iv
Interface grafica em_java_parte_ivInterface grafica em_java_parte_iv
Interface grafica em_java_parte_iv
 
Interface grafica em_java_parte_iii
Interface grafica em_java_parte_iiiInterface grafica em_java_parte_iii
Interface grafica em_java_parte_iii
 
Interface grafica em_java_parte_ii
Interface grafica em_java_parte_iiInterface grafica em_java_parte_ii
Interface grafica em_java_parte_ii
 
Interface grafica em_java_parte_i
Interface grafica em_java_parte_iInterface grafica em_java_parte_i
Interface grafica em_java_parte_i
 
Poo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_iiPoo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_ii
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_j
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_java
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_j
 
01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)
 
Java 08
Java 08Java 08
Java 08
 
Java 07
Java 07Java 07
Java 07
 
Java 06
Java 06Java 06
Java 06
 
Java 05
Java 05Java 05
Java 05
 
Java 04
Java 04Java 04
Java 04
 
Java 03
Java 03Java 03
Java 03
 
Java 02
Java 02Java 02
Java 02
 
Java 01
Java 01Java 01
Java 01
 

Último

Último (8)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

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]) ERROR...
  • 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])