So drucken Sie eine Liste von Tupeln

8

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

%Vor%

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.

    
yiwei 28.02.2013, 03:56
quelle

8 Antworten

7

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%     
eazar001 28.02.2013, 04:03
quelle
6

Oder Sie könnten das tun ...

%Vor%     
Tyler MacDonell 28.02.2013 04:04
quelle
3
%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 .

    
wim 28.02.2013 04:12
quelle
0

Verwenden Sie die Zeichenfolgenformatierung :

%Vor%     
jurgenreza 28.02.2013 04:04
quelle
0

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

    
ds440 28.02.2013 04:18
quelle
0

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()

%Vor%     
Octipi 28.02.2013 04:23
quelle
0

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:

%Vor%

um die erwartete Ausgabe zu erhalten.

    
Griffin_han 28.02.2013 05:41
quelle
0
%Vor%

Ergebnis

%Vor%     
eyquem 01.03.2013 23:27
quelle

Tags und Links