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
maio 28th, 2012 at 08:12
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
maio 28th, 2012 at 08:17
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
setembro 25th, 2013 at 08:36
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