Ein set ist eine ungeordnete Liste von Objekten, die jeweils nur einmal vorkommen (= unique elements).
# example for set a=[1,2,4,3,2,4,5,3,2] b=set(a) print(a,b) # [1, 2, 4, 3, 2, 4, 5, 3, 2] {1, 2, 3, 4, 5}
Sehr nützlich um schnell herauszufinden wieviele verschiedenartige Werte in Liste vorkommen.
Ein dict ist eine Art erweiterte Liste, bei der der Zugriff über key-Objekt erfolgt ( Heisst in C++/JAVA map, in Perl associative array).
Bei list, tuple sind die einzelnen Elemente in einer festen Reihenfolge geordnet, der Zugriff läuft meist über eine Index-Nummer, d.h. die numerische Position ist mit dem Objekt assoziert.
Bei dict dagegen werden Paare von Werten gespeichert, key und value.
Zugriff auf die Elemente erfolgt über den key, ähnlich wie mit dem numerischen Index bei array, list, tuple, deshalb auch die Bezeichnung assoziativer Array.
Beispiel Wörterbuch:
# engdeut={} # create empty dict engdeut["hello"] = "Hallo" engdeut["world"] = "Welt" engdeut["computer"] = "Rechner" engdeut["physics"] = "Physik" engdeut["physicist"] = "Physiker" engdeut["physician"] = "Arzt"
Verwendung:
Oder sequentiell durchlaufen mit Iteratoren:
# .. print len(engdeut) # Laenge = 6 # print engdeut.keys() # list der keys ['physician', 'physicist', ...] # for key in engdeut.keys(): # iterate over keys (print engdeut[key]) # for (e,d) in engdeut.items(): # iterate over key/value pairs (print e, d) #
Ein dict ist eine Art Liste von Paaren. Diese Liste ist sortiert nach dem key. Deshalb:
Lese–Zugriff auf dict Element ( dwort = engdeut["music"]) geht nur, wenn Element schon angelegt ist, andernfalls wird Exception ausgelöst.
Zwei Möglichkeiten damit umzugehen:
if "music" in engdeut: # False
if "physics" in engdeut: # True
try:
dwort = engdeut["music"]
except KeyError:
print ("No translation for ", "music")