Alles über Listen in Python

Python-Listen sind eine der zentralen Datenstrukturen in der Programmiersprache Python. Sie ermöglichen das Speichern und Organisieren unterschiedlichster Datentypen, darunter Zahlen, Zeichenketten und komplexe Objekte. Mit ihrer einfachen Syntax und den zahlreichen integrierten Funktionen bieten Listen vielseitige Werkzeuge zur Datenverarbeitung. Dieser Artikel behandelt die Grundlagen der Arbeit mit Listen, einschließlich ihrer Erstellung und der Zugriffsmöglichkeiten, und geht anschließend auf fortgeschrittene Techniken wie das Slicen und Kombinieren von Listen ein.

Listen in Python erstellen

Die Erstellung von Listen in Python ist ziemlich einfach, entweder mit eckigen Klammern oder dem Listen-Konstruktor. Listen können Elemente verschiedener Datentypen halten, einschließlich Zahlen, Zeichenfolgen, Booleans und sogar anderer Listen. Um eine Liste zu erstellen, umschließt man eine durch Kommas getrennte Sequenz von Elementen in eckigen Klammern:

test_list = ['JBerries', 'is', 'awesome']
print(test_list)
# Ausgabe: ['JBerries', 'is', 'awesome']
print(type(test_list))
# Ausgabe <class 'list'>

mixed_list = [1, "hello", 3.14, True]
print(mixed_list)
# Ausgabe: [1, "hello", 3.14, True]

Alternativ können wir den list() Konstruktor verwenden. Dies ist besonders nützlich, um andere iterable Datentypen wie Tupel oder Zeichenfolgen in Listen umzuwandeln. Zum Beispiel:

my_tuple = (1, 2, 3)
my_list = list(my_tuple)
print(my_list)  # Ausgabe: [1, 2, 3]

my_string = "hello"
my_list_from_string = list(my_string)
print(my_list_from_string) # Ausgabe: ['h', 'e', 'l', 'l', 'o']

Listenmanipulation

Zugriff auf Listenelemente

Zugriff auf Elemente in einer Liste erfolgt über ihre Indexnummern. Python-Listen sind nullbasiert, was bedeutet, dass das erste Element den Index 0 hat.

test_list = ['JBerries', 'is', 'awesome']
first_element = test_list[0]
print(first_element)  
# Ausgabe: JBerries

second_element = test_list[1]
print(second_element)  
# Ausgabe: is

Um auf Elemente vom Ende einer Liste zuzugreifen, erlaubt Python die Verwendung negativer Indizes, wobei -1 auf das letzte Element verweist, -2 auf das zweitletzte Element und so weiter:

last_element = test_list[-1]
print(last_element)  
# Ausgabe: awesome

Wir können auch Slicing verwenden, um eine Teilmenge von Elementen aus einer Liste zu extrahieren. Die allgemeine Syntax für Slicing ist list[start:stop:step], wobei:

Beispiel 1: Einfaches Slicing

my_list = [1, 2, 3, 4, 5]
print(my_list[1:3]) 
# Ausgabe: [2, 3]

In diesem Beispiel starten wir bei Index 1 (inklusiv) und stoppen bei Index 3 (exklusiv). Der resultierende Slice ist [2, 3].

Beispiel 2: Negative Indizes

my_list = [1, 2, 3, 4, 5]
print(my_list[-2:])  # Ausgabe: [4, 5]

In diesem Beispiel beginnen wir beim zweitletzten Element (-2) und gehen zum Ende der Liste (angezeigt durch :). Der resultierende Slice ist [4, 5].

Beispiel 3: Schrittgröße

my_list = [1, 2, 3, 4, 5]
print(my_list[::2])  # Ausgabe: [1, 3, 5]

In diesem Beispiel starten wir am Anfang der Liste und gehen bis zum Ende mit einer Schrittgröße von 2. Der resultierende Slice ist [1, 3, 5].

Beispiel 4: Umkehren einer Liste

my_list = [1, 2, 3, 4, 5]
print(my_list[::-1])  # Ausgabe: [5, 4, 3, 2, 1]

In diesem Beispiel beginnen wir am Ende der Liste und gehen bis zum Anfang mit einer Schrittgröße von -1. Der resultierende Slice ist die umgekehrte Liste [5, 4, 3, 2, 1].

Hinzufügen oder Entfernen von Elementen

Du kannst Elemente zu einer Liste mit der Methode append() oder der Methode insert() hinzufügen. Die Methode append() fügt ein Element am Ende hinzu.

my_list = ['JBerries', 'is', 'awesome']
my_list.append('!')
print(my_list)  # Ausgabe: ['JBerries', 'is', 'awesome', '!']

Die Methode insert() ermöglicht es dir, ein Element an einem bestimmten Index hinzuzufügen:

my_list.insert(2, 'super')
print(my_list)  # Ausgabe: ['JBerries', 'is', 'super', 'awesome', '!']

Um Elemente zu entfernen, kann die Methode remove() verwendet werden, um die erste Vorkommen eines angegebenen Werts zu entfernen:

my_list.remove('super')
print(my_list)  # Ausgabe: ['JBerries', 'is', 'awesome', '!']

Die Methode pop() entfernt ein Element an einem bestimmten Index und gibt es zurück. Wenn kein Index angegeben ist, entfernt pop() das letzte Element:

removed_item = my_list.pop()
print(removed_item)  # Ausgabe: !
print(my_list)  # Ausgabe: ['JBerries', 'is', 'awesome']

Über eine Liste iterieren

Du kannst einfach über eine Liste mit einer for-Schleife iterieren.

for item in my_list:
    print(item)
# Ausgabe:
# JBerries
# is
# awesome

Du kannst auch die Funktion enumerate() verwenden, um auf sowohl Element als auch Index zuzugreifen:

for index, item in enumerate(my_list):
    print(index, item)
# Ausgabe:
# 0 JBerries
# 1 is
# 2 awesome

List Comprehension

List Comprehension ermöglicht, eine neue Liste zu generieren, indem man eine Operation auf jedes Element in einer bestehenden Liste anwendet.

uppercase_list = [item.upper() for item in my_list]
print(uppercase_list)  # Ausgabe: ['JBERIES', 'IS', 'AWESOME']

List Comprehension kann man auch verwenden, um Elemente zu filtern:

filtered_list = [item for item in my_list if len(item) > 2]
print(filtered_list)  # Ausgabe: ['JBerries', 'awesome']

Sortieren einer Liste

Die Methode sort() sortiert die Liste standardmäßig in aufsteigender Reihenfolge.

unsorted_list = ['JBerries', 'is', 'awesome', 'Python']
unsorted_list.sort()
print(unsorted_list)  # Ausgabe: ['JBerries', 'Python', 'awesome', 'is']

Um in absteigender Reihenfolge zu sortieren, setze den Parameter reverse auf True.

unsorted_list.sort(reverse=True)
print(unsorted_list)  # Ausgabe: ['is', 'awesome', 'Python', 'JBerries']

Du kannst auch die Funktion sorted() verwenden, die eine neue sortierte Liste zurückgibt, ohne die ursprüngliche Liste zu ändern:

new_sorted_list = sorted(unsorted_list)
print(new_sorted_list)  # Ausgabe: ['JBerries', 'Python', 'awesome', 'is']

Duplizieren (Kopieren) einer Liste

Das Duplizieren einer Liste kann auf verschiedene Arten erfolgen. Die einfachste Möglichkeit ist die Verwendung von Slicing.

original_list = ['JBerries', 'is', 'awesome']
duplicate_list = original_list[:]
print(duplicate_list)  # Ausgabe: ['JBerries', 'is', 'awesome']

Du kannst auch die Methode copy() oder den Konstruktor der Liste verwenden:

duplicate_list = original_list.copy()
print(duplicate_list)  # Ausgabe: ['JBerries', 'is', 'awesome']

duplicate_list = list(original_list)
print(duplicate_list)  # Ausgabe: ['JBerries', 'is', 'awesome']

Listen verbinden

Das Verbinden von Listen ermöglicht die Kombination von zwei oder mehr Listen in eine. Du kannst dazu den + Operator verwenden:

list_a = ['JBerries', 'is']
list_b = ['awesome', 'Python']
joined_list = list_a + list_b
print(joined_list)  # Ausgabe: ['JBerries', 'is', 'awesome', 'Python']

Die Methode extend() erleichtert es auch, Elemente von einer Liste zu einer anderen hinzuzufügen:

list_a.extend(list_b)
print(list_a)  # Ausgabe: ['JBerries', 'is', 'awesome', 'Python']

Um den Code lesbarer zu machen, kannst du die Methode itertools.chain() aus der itertools-Bibliothek für umfangreichere Listen verwenden:

import itertools

list_one = ['JBerries', 'is']
list_two = ['awesome', 'Python']
joined_iterable = itertools.chain(list_one, list_two)
joined_list = list(joined_iterable)
print(joined_list)  # Ausgabe: ['JBerries', 'is', 'awesome', 'Python']

Das war's! Du solltest jetzt ein solides Verständnis dafür haben, wie man mit Listen in Python arbeiten kann. Diesen Artikel haben wir auch auf unserer englischsprachigen Seite veröffentlicht: Everything About Lists in Python Viel Spaß beim Programmieren!