Hallo Mike, Am 24.11.2012 23:28, schrieb Mike Müller:
Am 24.11.12 22:31, schrieb Benedikt Schwarz:
== Frage == Wie bekommt man mehr als 2 Spalten bei Dictionaries?
Eine Lösung wäre sicher ein Dictionary mit Tupeln als Wert:
d = {'a': ('werta1', 'werta2'), 'b': ('wertb1', 'wertb2')}
ich wusste noch nicht, das man die auch verschachteln kann. Bis zu welchem Grad kann man Dictionaries, Listen, Tupeln, usw. ineinander verschachteln? Gibt es da eine Grenze?
Zugriff auf das gesamte Tupel:
d['a'] ('werta1', 'werta2')
Zugriff auf Werte im Tupel:
d['a'][0] 'werta1' d['a'][1] 'werta2'
Geht natürlich mit jedem Schüssel:
d['b'] ('wertb1', 'wertb2') d['b'][0] 'wertb1' d['b'][1] 'wertb2'
Eine Liste statt eines Tupels geht auch. Eine Liste lässt sich ändern:
L = [1, 2, 3] L [1, 2, 3] L[0] = 10 L [10, 2, 3]
Bei einem Tupel geht das nicht. Es muss dann immer ein neues Tupel sein, wenn sich ein Wert ändern soll. Es hängt also von deinem Anwendungsfall ab. Wenn es einmal Erstellen und dann Nur-Lese-Zugriff sein soll würde ich Tupel empfehlen. Wenn sich der Inhalt, also immer nur einer der Werte, immer wieder ändern soll ist sicher eine Liste besser.
Das Ganze ist natürlich nicht auf zwei Werte beschränkt. Die Anzahl der Werte bei jedem Schlüssel-Werte-Paar kann anders sein, wenn das für deine Anwendung Sinn macht.
Eine weitere Lösung wäre als Wert wieder ein Dictionary zu nehmen. Ob das für dich Sinn macht kann ich nicht abschätzen, da ich den Zweck deiner zwei Werte-Spalten nicht kenne.
Dann lasse ich mal die Katze aus dem Sack: Es geht um die Abkürzung von chemischen Elementen in der einen Spalte, den vollen Namen in einer weiteren Spalte, die Eigenschaften in der nächsten Spalte und zu guter Letzt die lateinische Ursprungsbezeichnung in der vierten Spalte. Dazu noch ein paar Berechnungen und das Ganze verpackt hinter einer Tkinter GUI. Bis demnächst Benedikt Schwarz