[Python-de] Array als Tabelle (mit Zeilen und Spalten)?

Benedikt Schwarz beweta at gmx.com
So Nov 25 01:15:34 CET 2012


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


Mehr Informationen über die Mailingliste python-de