Seite 1 von 1

Frage zu set()

Verfasst: Mittwoch 30. September 2009, 13:11
von gurami

Code: Alles auswählen



#!/usr/bin/env python
# -*- coding: utf-8 -*-

dateien= [{'Maus': 'actg', 'Ratte': 'aaaaa'}, {'Maus': 'ssssss', 'Hund': 'qqqqq', 'Hamster': 'wwwww'}, {'Pferd': 'ssssss', 'Hund': 'eeeee', 'Iltis': 'eeeee'} ,
            {'Pferd':'ssssss', 'Schwein': 'eeeee', 'Iltis': 'raterate'}]

# Versuch 2 Funktioniert!!!!
print "VERSUCH 2"
print "**************"

altes_element= {}
gleichekeys = set()# leeres Set

for jedes_element in dateien:
    
    gleichekeys = set(altes_element.keys())  & set(jedes_element.keys())
    
    print gleichekeys
    
    #gleichekeys = gleichekeys.add(set(altes_element.keys())  & set(jedes_element.keys()))
   
    #key_nicht_gleich.add(set(altes_element.keys()) ^ set(jedes_element.keys()))

    
    print gleichekeys
    print "\n"
   
    #print  key_nicht_gleich
    
    altes_element = jedes_element


#ende for-schleife


print "ERGEBNIS DER AUSWERTUNG"
print "-------------------------"

for key in gleichekeys:
    print "Gleicher KEY mit dazugehoeriger Sequenz \n"
    
    print "KEY:  " + key
    #print "SEQUENZ:  " + dateien[key]+dateien[key]# Ausgabe des Wertes des Keys (= Sequenz des Organismus)
    print "\n" 

# Ausgabe der KEYS die nicht in allen Dateien sind

for nichtgleich in  key_nicht_gleich:
    
    print "Dieser Key ist nicht gleich:"

    print "KEY:  "  + nichtgleich



Ausgabe:




VERSUCH 2
**************
set([])
set([])


set(['Maus'])
set(['Maus'])


set(['Hund'])
set(['Hund'])


set(['Iltis', 'Pferd'])
set(['Iltis', 'Pferd'])


ERGEBNIS DER AUSWERTUNG
-------------------------
Gleicher KEY mit dazugehoeriger Sequenz

KEY: Iltis


Gleicher KEY mit dazugehoeriger Sequenz

KEY: Pferd


Traceback (most recent call last):
File "./auswertung2_30_09.py", line 48, in <module>
for nichtgleich in key_nicht_gleich:
NameError: name 'key_nicht_gleich' is not defined



**************************************************************************************************

ich brauch in gleichekeys am Schluss, alle gleichen Schlüssel, mein Problem ist es das er die vorherige löscht.
Gibt es eine Möglichkeit alle ausgelesenen Schlüssel in einem Set(9 zu haben bzw, set() zu addieren?
ich habe zwar was s.add/(e) gefunden, dies klappt leider auch net so richtig.
Hat eventuell jemand ne lösung oder ein denkansatz für mich ??

Gruss und danke gurami

Verfasst: Mittwoch 30. September 2009, 13:46
von gurami
Ok. hat sich erledigt, habe einenLösungsweg gefunden.

gruss gurami :D

Verfasst: Mittwoch 30. September 2009, 14:29
von Defnull
1) Bitte aussagekräftigere Titel verwenden.
2) Bitte deine Frage formulieren, bevor du seitenweise Quelltext postest. Ich will nicht erst nach der Frage suchen müssen.
3) Reduziere Quelltext-Beispiele bitte auf das Wesentliche.
4) Wenn du eine Lösung gefunden hast, dann kannst du sie uns auch gerne mit teilen, damit auch Andere daraus lernen können.

Verfasst: Sonntag 4. Oktober 2009, 20:00
von gurami
So hier ist die Lösung die ich gefunden habe:
Sorry wenn so spät hatte PC Probleme.

Code: Alles auswählen


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 04.Oktober 2009

#*********************************************************************************************************************
#*********************************************************************************************************************

dateien= [{'Maus': 'actg', 'Ratte': 'aaaaa'}, {'Maus': 'ssssss', 'Hund': 'qqqqq', 'Hamster': 'wwwww'}, {'Pferd': 'ssssss', 'Hund': 'eeeee', 		'Iltis': 'eeeee'} ,
            {'Pferd':'ssssss', 'Schwein': 'eeeee', 'Iltis': 'raterate'}]
#*********************************************************************************************************************
#*********************************************************************************************************************



# Versuch 1 Funktioniert!!!!
print " VERSUCH 1"
print " ************** "

altes_element= {}
neues_key_set = set()# leeres Set# gleichen keys
neues_key_set2 = set()

for jedes_element in dateien:
    
    
    
    gleichekeys = set(altes_element.keys())  & set(jedes_element.keys())

    
    neues_key_set = neues_key_set | gleichekeys
    
    altes_element = jedes_element

    for rest in dateien: 
    
        nicht_gleiche_keys = set(altes_element.keys())  ^ set(jedes_element.keys())
    
       
        neues_key_set2 = neues_key_set2 | nicht_gleiche_keys
        altes_element = jedes_element
    

     
    
    
    
altes_element= {}

nichtgleichkeys_set = set()
#*********************************************************************************************************************
for element in dateien:
    
    nicht_gleiche_keys = set(altes_element.keys())  ^ set(element.keys())
    
    nichtgleichkeys_set = nichtgleichkeys_set | nicht_gleiche_keys
    
    altes_element = element



#*********************************************************************************************************************
#*********************************************************************************************************************


print "ERGEBNIS DER AUSWERTUNG"
print "-------------------------"

print "\n"

print "AUSWERTUNG 1: "
print "+++++++++++++++"
print "\n"

for key in neues_key_set:
    print "Gleicher KEY mit dazugehoeriger Sequenz \n"
    
    print "KEY:  " + key
    
    print "\n" 

# Ausgabe der KEYS die nicht in allen Dateien sind
print "AUSWERTUNG 2: "
print "+++++++++++++++"
print "\n"



for nichtgleich in  nichtgleichkeys_set:
    
    print "Dieser Key ist nicht gleich:"

    print "KEY:  "  + nichtgleich



Verfasst: Montag 5. Oktober 2009, 10:09
von Hyperion
Wo genau ist der Unterschied zu dem Problem von letzter Woche?

http://www.python-forum.de/topic-20329.html

Außerdem solltest Du dringend mal PEP8 lesen und den Source-Code entsprechend kürzen oder auslagern, z.B. nach paste.pocoo.org.