ZPT's & Dictionaries
Wie kann der Inhalt eines Dictionary im "ZPT-Style" verpackt werden? Original von pkop.
Prolog:
Immer öfter hört man - nimm doch ZPT - und im Vergleich zu dem, was man kennt, sieht es doch oft recht chaotisch aus.
Aber das Chaos hat System!
Diese kleine Beispiel-Sammlung soll ein wenig den Blick schärfen.
Ein Dictionary als Quelle der Daten.
Das Dictionary könnte auch das Ergebnis einer Datenbankabfrage oder eines Python-Scriptes sein.
Hier können die unten aufgeführten Beispiele eingefügt werden.
Nun folgen in zwangloser Reihenfolge diverse Sichten auf unsere Daten (dict).
|
|
Erstmal der Variableninhalt als Ganzes (fürs debugging):
|
|
Anweisung:
|
|
Ergebnis:
|
{'die Zahl 0': 0, 'die Zahl 1': 1, 'der String 1': '1', 'der String 0': '0'}
|
Ausgabe aller Schlüssel (keys)
Das Ergebnis ist eine Liste.
|
|
Anweisung:
|
|
Ergebnis:
|
['die Zahl 0', 'die Zahl 1', 'der String 1', 'der String 0']
|
Ausgabe aller Werte (values)
Das Ergebnis ist eine Liste.
|
|
Anweisung:
|
|
Ergebnis:
|
[0, 1, '1', '0']
|
Ausgabe aller Name-/Wert-Paare (items)
Das Ergebnis ist eine Liste von Tupeln.
|
|
Anweisung:
|
|
Ergebnis:
|
[('die Zahl 0', 0), ('die Zahl 1', 1), ('der String 1', '1'), ('der String 0', '0')]
|
Nun die Verpackung der Daten.
Für die Wiederholung bedient man sich der tal-Anweisung repeat.
item wird oft als Laufvariable benutzt, wie man es oft mit i in einer for-Schleife macht.
|
|
Ausgabe als Liste ( hier nur die Schlüssel)
|
|
Anweisung:
|
|
Ergebnis:
|
|
Ausgabe als Liste (Wert und Schlüssel in einer Zeichenkette verpackt.)
|
|
Anweisung:
|
|
Ergebnis:
|
- der Schlüssel: die Zahl 0 enthält den Wert: 0
- der Schlüssel: die Zahl 1 enthält den Wert: 1
- der Schlüssel: der String 1 enthält den Wert: 1
- der Schlüssel: der String 0 enthält den Wert: 0
|
Ausgabe als Tabelle
Beachte das int(item[1]) in der dritten Spalte! Die Berechnung gelingt nur, wenn alle Werte in Zahlen konvertiert werden können.
|
|
Anweisung:
|
Schlüssel |
Wert |
und eine Berechnung |
|
|
|
|
Ergebnis:
|
Schlüssel |
Wert |
und eine Berechnung |
die Zahl 0 |
0 |
10 |
die Zahl 1 |
1 |
11 |
der String 1 |
1 |
11 |
der String 0 |
0 |
10 |
|
Ausgabe als Link verpackt
Zum füllen von Attributen verwendet man die Anweisung tal:attributes...
tal:omit-tag="" sorgt dafür, daß sich genau dieses span in Luft auflöst und nicht im Ergebnis erscheint.
Und schließlich kennt repeat noch einige Variablen number, letter...(siehe Hilfe im ZMI)
|
|
Anweisung:
|
.
hier die Beschriftung
|
Ergebnis:
|
1.
die Zahl 0
2.
die Zahl 1
3.
der String 1
4.
der String 0
|
Wenn die Schlüssel aussagekräftige Namen haben, können diese für die Verpackung eingesetzt werden.
Das erste Dictionary ist dafür nicht so geeignet, deshalb definieren wir ein anderes.
tal:omit-tag="" sorgt dafür, daß sich genau dieses span in Luft auflöst und nicht im Ergebnis erscheint.
${} erlaubt das Einfügen von Variablen in eine Zeichenkette, wenn die Ausgabe mit dem Schlüsselwort string: erzeugt werden soll.
|
|
Anweisung
|
|
Ergebnis:
|
Hans
daheim
|
Zum Schuß
Wer weitere interessante Varianten parat hat, her damit, ich werde sie bei Gefallen einarbeiten.
Created by dzugng
Last modified 09.04.2005 15:21