Ich habe eine Liste von Tupeln namens gradebook
, wobei jedes Listenelement ein Tupel ist, das einer Klasse und einer Note entspricht, die ein Schüler verdienen kann. Zum Beispiel
Und so weiter. Ich möchte, dass es so gedruckt wird:
%Vor%Ich möchte in der Lage sein, jedes Tupel in der Liste durchzugehen und dann jedes Element des Tupels auszudrucken. Wie kann ich das erreichen?
EDIT: Das habe ich gerade jetzt:
%Vor%Tut mir leid, ich bin Python sehr neu, also verstehe ich nicht wirklich, wie das funktioniert.
Allgemeines Format, Sie können durch eine Liste iterieren und auf den Index eines Tupels zugreifen:
%Vor%x [0] in diesem Beispiel gibt Ihnen den ersten Teil des Tupels, und x [1] .... so weiter. Drum herum und experimentieren Sie mit diesem Format, und Sie sollten in der Lage sein, den Rest alleine zu machen.
EDIT: Obwohl einige der anderen Antworten hier besser sind, in dem Sinne, dass sie die Tupel entpacken und dem "Weg von Python" näher folgen. Wie so:
%Vor%Ich habe die Feldbreiten manuell an Ihr Beispiel angepasst. Aber vielleicht ziehen Sie es vor, Feldbreiten auf intelligente Weise zu erzeugen, d. H. Basierend auf Spaltenmaximierungen der Elementlängen im Notenbuch.
Beim nächsten Mal wäre eine bessere Datenstruktur für Ihre Notenbucheinträge ein dict
anstelle von tuple
.
Sie können indizieren, indem Sie Elementnamen zuweisen (manchmal praktisch, wenn Sie etwas berechnen):
%Vor%Klasse: Mathe 212 ... Thema: Lineare Algebra ... Term: Herbst 2012 ... Note: B
Klasse: CS 130 ... Thema: Python ... Laufzeit: Frühjahr 2013 ... Note: A
Für gleichmäßigeren Abstand:
%Vor%Klasse: Mathe 212 ............ Thema: Lineare Algebra ...... Begriff: Herbst 2012 ........... Note: B
Klasse: CS 130 .............. Betreff: Python .............. Laufzeit: Frühjahr 2013 ........ Note: A
Ich bin mit einigen der fortgeschritteneren Formatierungsoptionen in Python nicht vertraut. Davon abgesehen werden die Ergebnisse wie gewünscht angezeigt. Sie können auf die Elemente in jedem Tupel über ihren Index zugreifen. '.'*(#-len('column info'+g[i]))
gibt die korrekte Anzahl von Perioden an, indem die Länge der Zeichenfolge von der Spaltenbreite subtrahiert wird. Um dies ohne Leerzeichen zwischen Elementen zu drucken, verwenden Sie sep=''
in print()
Sie können eine Funktion namens __str__(self)
definieren, die einen String wie das Formular "Klasse: Mathe 212 ..... Betreff: Lineare Algebra ..... Term: Herbst 2012 ..... Note: B "in der Klasse.
dann können Sie Ihren Code verwenden:
um die erwartete Ausgabe zu erhalten.
Tags und Links python