Frage zu set()

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
gurami
User
Beiträge: 21
Registriert: Freitag 18. September 2009, 09:41

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
gurami
User
Beiträge: 21
Registriert: Freitag 18. September 2009, 09:41

Ok. hat sich erledigt, habe einenLösungsweg gefunden.

gruss gurami :D
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

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.
Bottle: Micro Web Framework + Development Blog
gurami
User
Beiträge: 21
Registriert: Freitag 18. September 2009, 09:41

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


Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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.
Antworten