Listen, Tupel, Mengen
Ihr wollt mehrere Elemente abspeichern, dann braucht ihr Listen, Tupel oder Mengen. Zusammengefasst sind Listen eben eine (geordnete) Liste von Elementen. Die einzelnen Elemente lassen sich über einen Index ansprechen. Tupel sind fast das gleiche wie eine Liste, nur lassen sich die einzelnen Elemente nicht mehr verändern. Mengen sind nicht geordnet und haben keine doppelten Elemente.
Listen in Python
Dabei sind Listen sicherlich die wichtigste Struktur. Eine Liste wird mit eckigen Klammern definiert und besteht aus einer Folge von Elementen, die sogar von unterschiedlichen Typen sein können. Also zum Beispiel l1 = [1, 2, 3]
oder l2 = [„grün“, 3.14, 2]
.
Die Elemente der Liste lassen sich über die Indizes ansprechen. Im Prinzip genauso wie die einzelnen Zeichen eines Strings. Und wieder gilt, dass wir bei 0 mit dem Zählen anfangen. Also l1[0] gibt das 1. Element zurück, in dem Fall 1. l2[0] würde „grün“ zurückgeben.
Listen können beliebige Datentypen enthalten, auch wieder Listen. l3 = [[1,2], „grün“, [3.0,3.1,3.2]]
Vorsicht beim Kopieren von Listen: Wenn man mit l2 = l1 eine Liste „kopiert“, wird keine echte Kopie gemacht, sondern nur der sogenannte Zeiger auf die Liste kopiert. Verändere ich die ursprüngliche Liste l1, dann verändert sich damit auch l2. Um eine echte Kopie zu machen, verwendet man l2 = l1.copy()
.
Tupel in Python
Tupel sind im Gegensatz zu Listen nicht mehr veränderbar, d.h. im Nachhinein können keine Elemente eines Tupels geändert werden. Ansonsten verhalten sie sich genauso wie Listen. Tupel werden mit runden Klammern initialisiert, also z.B. t1 = (1, 2, 3)
.
Mit t1[1] greift ihr auf das 2. Element zurück, hier also 2. Nicht erlaubt ist t1[1] = 9, da wie eben geschrieben, Tupel nicht veränderbar sind.
Mengen in Python
Vermutlich eher ein selten genutztes Konstrukt. Mengen enthalten eindeutige Elemente, also keine doppelten Einträge, und sind nicht geordnet. D.h. im Gegensatz zu Listen oder Tupel können wir die Elemente nicht mit einem Index abrufen. Mengen werden in Python mit geschweiften Klammern gebildet. also z.B. m1 = { „grün“, „rot“, „blau“}
############################################# Listen, Tupel, Mengen############################################alist = [1,2,3,4]alistatuple = (1,2,3,3)atupleaset = {'grün','gelb','rot','rot'}aset# Elemente einer Liste können geändert werdenalist[2] = 9.34alist[3] = 'grün'alist[0] = ['gelb',-2e-2,5]len(alist)# Elemente eines Tuples können nicht geändert werdenatuple[0] = 9btuple = atuple + ('grün',2.1,[-3,-2,0])btuple[6]btuple[6][2] = 9len(btuple)# Mengen sind nicht geordnetaset[0]'grün' in asetaset.add('lila')aset.remove('grün')# Listen werden nicht kopiert, sondern zeigen auf das gleiche Objektblist = [1,2,3]clist = blistclist[0]blist[0] = 9clist[0]# echte Kopien erstellendlist = blist.copy()dlist = list(blist)
Python Dictionaries
Ein Dictionary kann man sich, wie der Name sagt, als Lexikon vorstellen, d.h. es gibt einen Schlüsselbegriff (key), dem etwas zugeordnet wird. Beim normalen Lexikon wäre es eine Erklärung des Schlüsselbegriffs, beim dictionary können es aber beliebige Datentypen sein. Wie schon bei Listen, Tupeln oder Mengen können auch dictionaries verschachtelt sein.
Ein Dictionary wird wie eine Menge per geschweiften Klammern definiert, allerdings bestehen die Einträge aus dem Schlüssel, gefolgt von Doppelpunkt und dann dem Wert.
Die einzelnen Einträge werden dann anstatt über einen Index über den Schlüssel angesprochen. So können die Einträge auch geändert werden. Wenn man alle Werte des Dictionaries dic als Liste bekommen will, benutzt man die Funktion values, also list(dic.values())
. Beachtet, dass wir noch list davor schreiben müssen, um auch wirklich eine Liste zu bekommen. Genauso funktioniert es mit den Schlüsseln, also list(dic.keys())
.
Sehr praktisch sind dictionaries, wenn mehrere Eigenschaften eines Objekts gespeichert werden sollen. Zum Beispiel soll für einen Kunden Name, Vorname und Alter gespeichert werden.
############################################# Dictionaries############################################dic = { 'E1':'Sofa','E2':'Stuhl','E3':'Tisch' }print(dic)dic['E1']dic[0]dic.values()dic.keys()dic = { 1:'Sofa',2:'Stuhl',3:'Tisch' }dic[1]Kunde = {'Vorname':'Kevin', 'Name': 'Chalupke', 'Alter': 32}print(Kunde['Name'])print(Kunde['Alter'])Kunde['Alter'] = 33
Den Datentyp einer Variable abfragen
Um zu prüfen, welchen Datentyp eine Variable x hat, gibt es den Befehl type(x)
. Mit isinstance(x,typ)
wird geprüft, ob x vom angegebenen Typ ist. Es wird also True oder False zurückgegeben
Python Datentypen umwandeln
Das Umwandeln von Datentypen in Python ist ziemlich intuitiv. Man benutzt einfach den Datentyp als Funktion und als Parameter kommt die umzuwandelnde Variable.
- int zu float:
float(3)
- float zu int:
int(3.14)
- int zu string:
str(3)
- string zu int:
int("3")
- float zu string:
str(3.14)
- string zu float:
float("3.14")
Auch die drei zusammengesetzten Typen List, Tuple und Set lassen sich so ineinander überführen
- list zu tuple:
tuple(l)
- tuple zu list:
list(t)
- list zu set:
set(l)
- set zu list:
list(s)
- tuple zu set:
set(t)
- set zu tuple:
tuple(s)
Nur das Dictionary fällt aus der Reihe, denn Python kann ja nicht wissen, wie es z.B. eine Liste in ein Dictionary umwandeln soll, denn es fehlen die Schlüssel. Andersherum funktioniert es: aus einem Dictionary kann man eine Liste/Tupel/Menge machen, allerdings werden nur die Schlüssel verwendet.
############################################# Datentypen umwandeln ############################################# int schneidet die Dezimalstellen abx = 3.14int(x)int(3.6)int(-0.9)float(3)float("3.14")int("3")# ein String einer Dezimalzahl kann nicht in einen int umgewandelt werdenint("3.14")int(float("3.14"))str(10)str(10.34)# Listen, Tupel und Mengen lassen sich ineinander überführentuple(alist)list(atuple)set(alist)set(atuple)list(aset)tuple(aset)# Wenn man ein Dictionary in eine Liste/Tupel/Menge umwandelt, wird# der Schlüssel (Key) in das entsprechende Objekt umgewandeltlist(dic)tuple(dic)set(dic)list(Kunde)
So, das war es mit den wichtigsten Datentypen in Python. Eigentlich nicht so schwierig, oder?
Hat Euch der Beitrag gefallen? Dann schreibt mir einen Kommentar oder teilt den Artikel, damit andere auch etwas davon haben.
Happy coding,
Euer Holger