richtige Reihenfolge beim printen

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
warch
User
Beiträge: 9
Registriert: Sonntag 26. August 2007, 16:21

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
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

In welcher Beziehung steht fname denn zu expected? Das wird in dem Snippet gar nicht deutlich.

Gruß,
Christian
Jan-Peer
User
Beiträge: 166
Registriert: Dienstag 2. Oktober 2007, 10:55

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).
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

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
warch
User
Beiträge: 9
Registriert: Sonntag 26. August 2007, 16:21

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ß.
warch
User
Beiträge: 9
Registriert: Sonntag 26. August 2007, 16:21

Hallo zusammen ,
kann mir jemand bitte helfen
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.
warch
User
Beiträge: 9
Registriert: Sonntag 26. August 2007, 16:21

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
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.
warch
User
Beiträge: 9
Registriert: Sonntag 26. August 2007, 16:21

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
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

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
Antworten