Listen in Python und Java
Wir sind umgeben von Daten – Wir arbeiten täglich mit Daten – Über uns existieren Daten und diese sollten wir möglichst nicht hergeben.
All diese Daten sind in elektronischer Form.
Und sie werden erzeugt, verarbeitet, gespeichert und übertragen.
Dazu werden die Daten in Strukturen gegossen und mit Werkzeugen bearbeitet.
Python als Programmiersprache ist wie ein Werkzeug, um Daten zu bearbeiten. Daten in beliebigsten Strukturen.
Eine der einfachsten Datenstrukturen ist die Liste.
Listen gibt es in vielen Programmiersprachen. Und all diese Sprachen verstehen unter einer Liste dasselbe Konzept.
Die Programmiersprachen verwenden unterschiedliche Syntaxelemente und unterschiedliche Schlüsselwörter, um die Befehle darzustellen.
Autorin: Ursula Deriu
Listen in Python und Java definieren
Listen sind in beiden Programmiersprachen als Klassen realisiert. Um mit einer Liste zu arbeiten, müssen wir ein Objekt der Klasse instanzieren.
Das ist in Python besonders einfach, gerade auch, weil Listen eingebaute Datentypen sind. Hier ein Beispiel:
pythonListe = [1, 2, 3]
Mehr dazu findest du im Blog Post: Python Listen definieren und initialisieren.
Zum Vergleich in Java:
ArrayList javaListe = new ArrayList();
Dazu müssen wir noch das Package java.util.ArrayList importieren. In Python ist das nicht nötig, weil die Listen in Python zu den eingebauten (built-in) Datentypen gehören.
Zudem ist die Java-Liste noch leer. Es gibt keine Möglichkeit, sie mit einem Initialwert zu versehen, so wie in Python.
In allen Programmiersprachen können Listen variabel viele Elemente haben. Wir müssen also nicht schon zum Zeitpunkt der Programmierung festlegen, wie viele Elemente wir benötigen. Das ist sehr praktisch. Und in Java geht man davon aus, dass man sowieso immer mit einer leeren Liste startet.
Elemente in Listen einfügen
In allen Programmiersprachen können wir neue Elemente hinten an der Liste anhängen.
In Python sieht das so aus:
pythonListe.append(4)
Und in Java sagen wir
ArrayList javaListe = new ArrayList();
Das ist fast wie Französisch und Italienisch – oder wie Deutsch und Holländisch: sehr ähnlich, aber doch nicht gleich.
Reihenfolge der Elemente in Listen
Und in allen Programmiersprachen ist die Reihenfolge der Listenelemente immer dieselbe. Das macht sich bemerkbar, wenn wir die Listenelemente bearbeiten.
Beispielsweise der Reihe nach ausgeben. Wir erhalten immer dieselbe Reihenfolge. Nicht jede Datenstruktur garantiert das.
Wollen wir in Python die Elemente einer Liste der Reihe nach ausgeben, dann sieht das beispielsweise so aus:
for element in meineListe: print(element);
Und in Java sagen wir
for (int element : meineListe) { System.out.println(element); }
Das sieht wiederum ähnlich aus.
Anforderungen an Elemente in Listen
Java gilt als typsichere Sprache. Das bedeutet in unseren Code-Beispielen, dass wir für die Listenelemente einen Datentyp angeben müssen. Hier haben wir gesagt, dass wir mit ganzen Zahlen arbeiten wollen, also mit Integer.
In Java können wir in einer Liste nur Elemente desselben Datentyps unterbringen.
Python ist da flexibler. Weil Python nicht typsicher ist.
In Python können wir sagen
pythonListe = [1, 2, 'Hallo']
Mit Python können wir also ganze Zahlen und Zeichenketten in der Liste unterbringen.
Etwas Ähnliches können wir in Java nicht machen – (na ja, wenn’s sein muss, dann kann man den Effekt auch erzielen, doch dann wäre es gescheiter, für dieses Programm nicht Java zu verwenden).
Elemente aus Listen löschen
Wir können in allen Programmiersprachen auch Elemente aus Listen löschen:
In Python:
pythonListe.remove('Hallo')
Das erste Element ‘Hallo’ wird entfernt. Vielleicht gibt es mehr als ein solches Element in der Liste.
In Java löschen wir so:
javaListe.remove(2);
Das Element an der zweiten Stelle wird entfernt.
Wiederum ähnlich, aber nicht gleich. Etwa so wie Deutsch und Englisch. Man muss beide Sprachen lernen, kennt man die eine, dann fällt die andere viel leichter.
Fazit
Listen als abstraktes Konzept sind allen Informatikern bekannt. Sie verhalten sich in allen Programmiersprachen ähnlich.
Als Anfängerin oder Anfänger konzentrierst du dich am besten darauf, Listen in einer Programmiersprache kennen zu lernen.
Später wirst du allgemein gültige Konzepte lernen und der Wechsel zu einer anderen Programmiersprache wird dir leicht fallen.
Welche Klammer bedeutet was? [] oder{} oder () oder gar (()) ?
Cheat Sheet für Python-Anfänger: Wichtigste Python-Datentypen
Die wichtigsten Built-in-Datentypen von Python auf einen Blick. Ein unverzichtbarer Spickzettel beim Durchstarten mit Python. Einfach herunterladen.