Utilizando a Classe Set do Python

Recentemente fiz uma aplicação onde tinha que verificar a diferença entre algumas estrutura de dados inicialmente fiz na mão mesmo, mas não me conformei com isso e resolvi fazer uma pesquisa para saber como se faz isso no python.

Encontrei uma classe que trabalha com todas as ações básicas dos conjuntos.

Obs.: Fiz uns exemplos básicos e que para alguns podem parecer sem sentido mas server  apenas para mostrar os conceitos da classe.

Vamos lá então, primeiro vou criar uma estrutura de dados que vou chamar de opções isso poderia estar vindo de uma banco de dados ou mesmo lendo um arquivo TXT.

Povoando nossas opções.

 opcoes =  [9, 3, 6, 5, 0, 1, 7, 2, 8, 4]

E inicializaremos nossas bases de números impares e pares.

pares = []
impares = []

#Gerando duas novas listas a partir das opções dadas
for numero in opcoes:
    if numero % 2 == 0:
        pares.append(numero)
    else:
        impares.append(numero)

Para que possamos trabalhar com a classe SET a origens de dados devem ser do tipo SET também.

opcoes  = set(opcoes)
pares   = set(pares)
impares = set(impares)

Agora vamos começar os testes. OBA!!!!

#Descobrir dentre as opções descobrir quais estão no grupo dos pares
opcoesPares = set.intersection( opcoes, pares )

#Descobrir dentre as opções descobrir quais estão no grupo dos impares
opcoesImpares = set.intersection( opcoes, pares )

#Fazendo  a união das duas listas
paresMaisImpares = set.intersection( opcoesPares, opcoesImpares )

#Vamos verificar se o grupo dos pares são pertencentes ao grupo de opções
paresPertencemAOpecoes = set.issubset( pares, opcoes )

#Verificar o que tem de diferente entre as opções e os numeros impares
naoContemEssesNumerosNosImpares = set.difference( opcoes, impares )

Bem acho que é isso fiz alguns exemplos bem básicos e acredito que pode ser um ponto de partida para um estudo mais aprofundado então como última dica a respeito seria isso.

http://docs.python.org/library/sets.html

Mas se não tiver afim de ir para net pode ser por modo interativo mesmo.

$ python
Python 2.4.3 (#1, Jul 27 2009, 17:57:39)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> help(set)

Se tiverem exemplos mais interessantes deixe nos comentários que serão devidamente divulgados com os nomes dos autores

This entry was posted on sexta-feira, julho 31st, 2009 at 19:35 and is filed under geral. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

3 Responses to “Utilizando a Classe Set do Python”

  1. Valdinei Says:

    Mensagem: Boa tarde! gostaria de saber se vc pode ajudar com essa questão pois seguir o seu exemplo(set) mais n consegui.Como você faria.

    Dados um arranjo X com N elementos e um arranjo Y com M elementos, faça um algoritimo que determine e imprima o arranjoZ, contendo a união de X e Y. Em Z não
    deve aparecer elementos repetitivos.

    Agradeço pela atenção.
    Raniere de Almeida Ramos

  2. Valdinei Says:

    Raniere então sua resposta seria algo parecido com isso:

    #Codigo
    from sets import Set
    x=Set([1,2,3,4,5])
    y=Set([5,6,6,7,8,9,0])

    resultado_uniao = x.union(y)
    print resultado_uniao
    Set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

    #Fim-Codigo

  3. thiago Says:

    muito bom o texto, mas tem umas coisas q tao erradas..

    opcoesImpares = set.intersection( opcoes, pares )
    certo seria impares

    #Fazendo a união das duas listas
    08
    paresMaisImpares = set.intersection( opcoesPares, opcoesImpares )
    uniao seria set.union

    obrigado pelo topico
    abracos

Leave a Reply