2.Datentypen und Datenstrukturen: Difference between revisions

From Bioinformatik Wiki
No edit summary
No edit summary
Line 235: Line 235:
* der Zugriff erfolgt durch den key  
* der Zugriff erfolgt durch den key  
* die Syntax ist analog zum Abruf der Elemente einer Liste, nur das statt der Indexzahl der key in die eckige Klammer geschrieben wird (s.Beispeil_1)
* die Syntax ist analog zum Abruf der Elemente einer Liste, nur das statt der Indexzahl der key in die eckige Klammer geschrieben wird (s.Beispeil_1)
===== Dictionary verändern =====
* wie Listen sind auch Dictionaries veränderbar, es können Elemente hinzugefügt, geändert und sogar gelöscht werden

Revision as of 23:00, 25 July 2021


Datentypen

In Python unterscheidet man vier verschiedene Datentypen (Klassen):

Datentyp Abkürzung Bedeutung Beispiel
String str Zeichenkette "abc"
Integer int Ganze Zahl 1
Float float Dezimalzahl 1.0
Boolean bool Wahrheitsgehalt True, False

Der Datentyp kann durch den type-Befehl abgefragt werden.

Datenstrukturen

Man unterscheidet zwischen drei verscheiden Datenstrukturen: Listen, Dictionary und Tupel. Alle diese Datenstrukturen stellen Organisationsformen von Daten in Python dar. Das heißt sie erleichtert vor allem die Handhabung größerer Datenmengen, indem sie diese in geeigneter Form darstellen und speichern. Sie unterscheide sich jedoch in ihrem Aufbau und ihren spezifischen Funktionen.

Listen

#Befehl:
liste= ["string",variable,1, 2.0,True] 

#Beispiel_1:
tier_1=["Hund",100,399,99,True]
tier_2=["Katze",60,249,99,True]
tier_3=["Fisch",3,1 ,50,False]

print(tier_1)
print(tier_2)
print(tier_3)

output

['Hund', 100, 399, 99, True]
['Katze', 60, 249, 99, True]
['Fisch', 3, 1, 50, False]

Funktion

  • haben dieselbe Funktion wie Listen im realen Leben
  • mit Listen können mehrere Werte unter einem Namen abgespeichert werden
  • macht ein Programmcode übersichtlicher und erleichtert die Arbeit, weil nicht jeder einzelne Wert mit einem eigenen Variablennamen gespeichert werden muss

Syntax

  • die Liste erhält einen Namen, welcher wie eine Variable durch ein Gleichheitszeichen den Elementen der Liste zugeordnet wird
  • die Elemente der Liste werden in eckige Klammer gesetzt und müssen mit einem Komma voneinander getrennt werden
  • in einer Liste können alle unterschiedlichen Datentypen vorkommen
Liste ausgeben lassen
  • die ganze Liste lässt sich durch einen print-Befehl ausgeben (s. Beispie_1)
einzelne Elemente der Liste ausgeben lassen
  • auch einzelne Elemente der Liste können ausgegeben werden (s. Beispiel_2)
  • dabei wird die Position des auszugebenden Elements durch eine Indexzahl in eckigen Klammern nach dem Listennamen angegeben
  • Achtung: bei Python wird das Zählen bei 0 gestartet, d.h. das erste Element in der Liste besitzt die Position 0
  • es kann auch von hinten gezählt werden, dabei besitzt das erste Element (welches von vorne gezählt das letzte wäre) die Position -1 usw.
Bereich der Liste ausgeben lassen
  • es lässt sich auch ein Bereich der Liste ausgeben, wobei die Positionen der Elemente durch ein Doppelzeichen getrennt werden (s.Beispiel_2)
  • die erste Indexzahl schließt die Position des Elements ein,welche ausgegeben wird
  • die zweite gibt die Position des Elements an, welches nicht mehr im Bereich liegt und demnach nicht ausgegeben wird
  • um die Syntax des Befehls zu verstehen, ist es sinnvoll, die verschiedenen Möglichkeiten einmal selbst auszuprobieren und die Aufgaben 4 und 5 auf dem Aufgabenblatt zu bearbeiten
#Befehl:
print(liste[Position])

#Beispiel_2:
tier_1=["Hund",100,399,99,True]

print(tier_1[0])
print(tier_1[1])
print(tier_1[-1])
print(tier_1[0:4])

output

Hund
100
True
['Hund', 100, 399, 99]
['Hund', 100, 399, 99]
Liste verändern
  • wie Variablen sind auch Listen veränderbar, es können Elemente hinzugefügt, geändert und sogar gelöscht werden
Element in Liste verändern
  • Elemente der Liste lassen sich verändern, sowie auch der Wert von Variablen neu definiert werden kann
  • dafür schreibt man den Namen der Liste, dahinter eine Indexzahl in eckigen Klammern, wobei die Indexzahl die Position des zu verändernden Elements angibt
  • die Zuweisung des neuen Werts erfolgt durch ein Gleichheitszeichen und den neuen Wert, den das Element der Liste annehmen soll (s.Beispiel_3)
#Befehl:
liste[Position]= neuer Wert

#Beispiel_3:
tier_1=["Hund",100,399,99,True]

print(tier_1)
tier_1[0]="Tiger"
tier_1[1]=500
print(tier_1)

output

['Hund', 100, 399, 99, True]
['Tiger', 500, 399, 99, True]
Element zur Liste hinzufügen
  • Listen können erweitert werden
  • dazu schreibt man den Namen der Liste ein Gleichheitszeichen, erneut den Namen der Liste, ein „+“ und das Element das hinzugefügt werden soll in eckigen Klammern (s.Beispiel_4)
#Befehl:
liste=liste + [neues Element]

#Beispiel_4:
tier_1=["Hund",100,399,99,True]
print(tier_1)
tier_1=tier_1+["Elefant"]
print(tier_1)

output

['Hund', 100, 399, 99, True]
['Hund', 100, 399, 99, True, 'Elefant']


Element aus Liste löschen
  • Elemente lassen sich mit dem del -Befehl aus der Liste entfernen (s.Beispiel_5)
  • nach „del“ folgt der Listenname und die Position des zu löschenden Elements in eckigen Klammern
Befehl:
del liste[]

#Beispiel_5:
tier_1=["Hund",100,399,99,True]
del tier_1[1]
print(tier_1)

output

['Hund', 399, 99, True]
Addition und Multiplikation von Listen
  • Listen können miteinander addiert oder mit Zahlen multipliziert werden

(s. Beispiel_6)

  • werden zwei Listen addiert, wird der Inhalt der Listen hintereinander ausgegeben
  • wird eine Liste mit einer Zahl multipliziert, wird der Inhalt der Liste entsprechend oft hintereinander ausgegeben
#Beispiel_6:
tier_1=["Hund",100,399,99,True]
tier_2=["Katze",60,249,99,True]
tier_3=["Fisch",3,1 ,50,False]

print(tier_1 + tier_2)
print(tier_1 *2)

output

['Hund', 100, 399, 99, True, 'Katze', 60, 249, 99, True]
['Hund', 100, 399, 99, True, 'Hund', 100, 399, 99, True]
Listen in Listen
  • Elemente einer Liste können selbst eine Liste sein, so erhält man Listen in einer Liste (s.Beispiel_7)
  • es entsteht eine zweidimensionale Liste mit einer übergeordneten Liste (im Beispiel: alle_tiere) und den untergeordneten Listen ( tier_1, tier_2, tier_3)
  • auf die Elemente der übergeordneten Liste lässt sich wie oben gezeigt zugreifen
  • möchte man nur auf ein Element der untergeordneten Liste zugreifen, sind zwei Indexzahlen notwendig
  • die erste Indexzahl gibt die Position des Elements in der übergeordneten Liste an
  • die zweite Indexzahl gibt die Position des Elements in der untergeordneten Liste an (s.Beispiel_7)
#Befehl:
print(liste[Position][Position])

#Beispiel_7:
tier_1=["Hund",100,399,99,True]
tier_2=["Katze",60,249,99,True]
tier_3=["Fisch",3,1 ,50,False]

alle_tiere=[tier_1, tier_2, tier_3]
print(alle_tiere[0])
print(alle_tiere[0][0])

output

['Hund', 100, 399, 99, True]
Hund

Dictionaries

#Befehl:
dictionary={"key_1":Element_1,"key_2":Element_2}

#Beispiel_1:
buch_1={"Buch":"Der Herr der Ringe", "Autor":"Tolkien", "Preis":45}

print(buch_1) 
print(buch_1["Buch"])
print(buch_1["Autor"])
print(buch_1["Preis"])

output

{'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}
Der Herr der Ringe
Tolkien
45

Funktion

Listen sind zwar geeignet, um größere Mengen an Daten in übersichtlicher und gut manipulierbarer Weise abzuspeichern, haben aber einen entscheidenden Nachteil. Um auf ein Element in einer Liste zugreifen zu können, ist es notwendig die Position des Elements in der Liste zu kennen. Bei kürzeren Listen lässt sich vielleicht noch der Überblick behalten. Sobald Listen aber eine gewissen Anzahl an Elementen überschreiten, in einem Programm mehrere Listen verwendet werden oder sogar Listen in Listen gespeichert sind, ist jeglicher Versuch sich die Positionen der Elemente zu merken vergebens. Hier bringen die sogenannten Dictionaries den entscheidenden Vorteil. Dictionaries funktionieren wie Listen, wenn es darum geht Informationen abzuspeichern. Doch der Zugriff auf die Elemente folgt nicht durch eine Indexnummer sondern über ein sogenannten key oder Schlüsselbegriff. Um auf die Elemente über einen key zugreifen zu können, werden den Elementen im Dictionary ein Schlüsselbegriff zugeordnet.


Syntax

  • nach dem Namen des Dictionary und dem Gleichheitszeichen folgt eine geschweifte Klammer {}
  • danach folgt der Key, dabei kann es sich um ein integer, float, bool oder string handeln
  • darauf folgt das Listenelement, getrennt durch einen Doppelpunkt vom Key und durch ein Komma vom nächsten Key-Element Paar
Dictionary ausgeben lassen
  • das ganze Dictionary lässt sich durch einen print-Befehl ausgeben (s. Beispie_1)
einzelne Elemente des Dictionaries ausgeben
  • der Zugriff erfolgt durch den key
  • die Syntax ist analog zum Abruf der Elemente einer Liste, nur das statt der Indexzahl der key in die eckige Klammer geschrieben wird (s.Beispeil_1)
Dictionary verändern
  • wie Listen sind auch Dictionaries veränderbar, es können Elemente hinzugefügt, geändert und sogar gelöscht werden