Seite 1 von 1
richtige Reihenfolge beim printen
Verfasst: Donnerstag 11. Oktober 2007, 16:28
von warch
Servus,
ich habe ein Code geschrieben,mit dem ich Daten von mehrere Dateien
q001,q002,usw
lese und danach tue ich printen
Code: Alles auswählen
if "result" in imap.keys():
expected = imap["result"]
deviation = (expected - resultInstance)/expected
print "expected;",fname,";",expected.outputRaw()
print "resultInstance;",fname,";",resultInstance.outputRaw(),infoInstance.output()
print "---------------------------------------------"
print "deviation;",fname,";",deviation.outputRaw()
Meine Ausgabe ist die folgende:
expected;
q001;436;932;097;.........
resultInstance;
q001;9279;59;59;65;930...usw
deviation ;
q001;983;435;45; …………… usw
expected;
q002;32;92;7;.........
resultInstance;
q002;279;9;459;5;90...usw
deviation ;
q002;943;45;4; …………… usw
ich brauche sie aber so:
expected;
q001;436;932;097;.........
expected;
q002;32;92;7;.........
resultInstance;
q001;9279;59;59;65;930...usw
resultInstance;
q002;279;9;459;5;90...usw
deviation ;
q001;983;435;45; …………… usw
deviation ;
q002;943;45;4; …………… usw
Verfasst: Donnerstag 11. Oktober 2007, 16:48
von CM
In welcher Beziehung steht fname denn zu expected? Das wird in dem Snippet gar nicht deutlich.
Gruß,
Christian
Verfasst: Freitag 12. Oktober 2007, 07:49
von Jan-Peer
Ich vermute, daß es da noch irgendeine Schleife drum herum gibt, die sich um die Ausgabe kümmert. In dem Fall schlage ich vor, daß du die Schleife in drei Schleifen zerlegst (jeweils eine für expected, resultInstance und deviation).
Verfasst: Freitag 12. Oktober 2007, 07:56
von CM
Jan-Peer hat geschrieben:Ich vermute, daß es da noch irgendeine Schleife drum herum gibt,
Das ist in der Tat naheliegend.
Jan-Peer hat geschrieben:
die sich um die Ausgabe kümmert. In dem Fall schlage ich vor, daß du die Schleife in drei Schleifen zerlegst (jeweils eine für expected, resultInstance und deviation).
Und das ist nur vielleicht sinnvoll. In Python gibt es dazu - situationsabhängig - mehrere Wege: Mehrere Schleifen, mit zip, enumerate, iteritems, ... Deswegen fragte ich nach der Beziehung von fname und expected. Vielleicht kann man ja auch zeigen, wie man die beiden effizienter verbandelt, vielleicht läuft es tatsächlich auf eine Mehrfachschleife hinaus.
Gruß,
Christian
richtige Reihenfolge beim printen
Verfasst: Sonntag 14. Oktober 2007, 11:15
von warch
hi ,
fname nimmt jedes Mal der Name der Dateien an(dh fname ist der name der Datei) .Und expected sind in dieser Datei enthaltene Werte.
Danke und schöner Gruß.
Hilfe
Verfasst: Sonntag 14. Oktober 2007, 18:33
von warch
Hallo zusammen ,
kann mir jemand bitte helfen
Verfasst: Sonntag 14. Oktober 2007, 19:36
von BlackJack
Du musst das Programm halt so umschreiben das die Daten in einer anderen Reihenfolge ausgegeben werden. Also nicht pro `fname` alle drei Informationen sondern erst alle "expected", dann alle "resultInstance" usw. für eine Datei, dann für die nächste usw.
Dabei könnte es günstiger sein die Daten anders zu organisieren. Das ist aber alles ziemlich grundlegende Programmlogik.
Verfasst: Sonntag 14. Oktober 2007, 20:28
von warch
Danke für deine Antwort,
genau nur pro `fname ' nicht alle drei Informationen sondern erst alle "expected" für
alle Dateien, dann alle "resultInstance" für
alle Dateien usw.
meine Funktion wird erst hier aufgerufen:
Code: Alles auswählen
if __name__ == '__main__':
testcase.process("../daten/AB/q001")
testcase.process("../daten/AB/q002")
testcase.process("../daten/AB/q003")
testcase.process("../daten/AB/q004")
testcase.process("../daten/AB/q005")
testcase.process("../daten/AB/q006")
testcase.process("../daten/AB/q007")
ich habe 3 for shleifen beim printen eingebaut, es hat aber nicht funktioniert
Verfasst: Sonntag 14. Oktober 2007, 21:06
von BlackJack
Du gibst dauernd Bruchstücke von Deinem Quelltext an, bei denen immer wichtige Teile fehlen. Beim letzten mal wo `fname` überhaupt herkommt, und beim dem Beitrag jetzt weiss man auch nicht was das jetzt bringen soll. Man sieht daran überhaupt nichts. Nur das wahrscheinlich irgendwelche Dateien verarbeitet werden. Aber weder wie das passiert, noch wie die Datenstrukturen aussehen, die dabei heraus kommen.
Wenn das nicht das gewünschte Ergebnis bringt, musst Du es halt anders machen. Nicht sehr hilfreich, aber das einzige was man bei solch dürftigen Informationen sagen kann.
Verfasst: Sonntag 14. Oktober 2007, 21:46
von warch
sorry ,
du hast ja recht,
mit diesem Bruchstück wollte ich nur zeigen dass , die Dateien so nach einander gelesen und bei jeder die drei Informationen expected,resultInstance,deviation nacheinander geprintet werden .
fname ist einfach der Dateiname (q001,q002................)
mein Code ist sehr lang deshalb könnte ich nicht alles angeben
ich muss nur hier was ausdenken vielleicht eine schleife oder irgendwas:
Code: Alles auswählen
print "expected;",fname,";",expected.outputRaw()
print "resultInstance;",fname,";",resultInstance.outputRaw(),infoInstance.output()
print "---------------------------------------------"
print "deviation;",fname,";",deviation.outputRaw()
das kann ich schon verstehen ,was du meinst.
sorry noch mal ,
und vielen dank für deine Hilfe
Verfasst: Dienstag 16. Oktober 2007, 09:00
von CM
warch, BlackJack, bringt es eigentlich auf den Punkt, aber ich sage es für die Deutlichkeit nochmals: Wenn Du z. B. Probleme mit der Ausgabe in einer bestimmten Reichenfolge hast und möchtest, daß man Dir zeigt wie es besser geht, dann wäre ganz gut, Du verrätst uns zwei Dinge:
a) Deine Datenstruktur (wie sehen Deine dicts, listen, tuple aus? wie sind sie benannt?)
b) Deinen bisherigen Versuch mit der Schleife (wie iterierst Du eigentlich über Deine Struktur?)
Ansonsten kann Dir niemand helfen. Natürlich gibt es immer Leute, die bereit sind zu raten, aber dann ist es aus Deiner Warte Glückssache, ob es Dir wirklich hilft oder nicht.
Gruß,
Christian