Grundlegendes zu Listen in Python 3

Einführung

Alist ist eine Datenstruktur in Python, die eine veränderbare oder veränderbare geordnete Folge von Elementen ist. Jedes Element oder jeder Wert in einer Liste wird als Element bezeichnet. So wiestrings als Zeichen zwischen Anführungszeichen definiert sind, werden Listen durch Werte in eckigen Klammern[ ] definiert.

Listen eignen sich hervorragend, wenn Sie mit vielen verwandten Werten arbeiten möchten. Mit ihnen können Sie zusammengehörige Daten zusammenhalten, Ihren Code komprimieren und dieselben Methoden und Vorgänge für mehrere Werte gleichzeitig ausführen.

Wenn Sie an Python-Listen und andere Datenstrukturen denken, die Arten von Sammlungen sind, ist es nützlich, alle verschiedenen Sammlungen zu berücksichtigen, die Sie auf Ihrem Computer haben: Ihre Auswahl an Dateien, Ihre Song-Wiedergabelisten, Ihre Browser-Lesezeichen, Ihre E-Mails, die Sammlung von Videos Sie können auf einen Streaming-Dienst und mehr zugreifen.

Erstellen Sie zunächst eine Liste mit Elementen des Datentyps "Zeichenfolge":

sea_creatures = ['shark', 'cuttlefish', 'squid', 'mantis shrimp', 'anemone']

Wenn wir die Liste ausdrucken, sieht die Ausgabe genauso aus wie die Liste, die wir erstellt haben:

print(sea_creatures)
Output['shark', 'cuttlefish', 'squid', 'mantis shrimp', 'anemone']

Als geordnete Folge von Elementen kann jedes Element in einer Liste einzeln durch Indizierung aufgerufen werden. Listen sind ein zusammengesetzter Datentyp, der aus kleineren Teilen besteht und sehr flexibel ist, da Werte hinzugefügt, entfernt und geändert werden können. Wenn Sie viele Werte speichern oder über Werte iterieren müssen und diese Werte problemlos ändern möchten, möchten Sie wahrscheinlich mit Listendatentypen arbeiten.

In diesem Lernprogramm werden einige Möglichkeiten beschrieben, wie Sie mit Listen in Python arbeiten können.

Indizierungslisten

Jedes Element in einer Liste entspricht einer Indexnummer, bei der es sich um einen ganzzahligen Wert handelt, beginnend mit der Indexnummer0.

Für die Listesea_creatures sieht die Indexaufschlüsselung folgendermaßen aus:

'Hai' 'Tintenfisch' 'Tintenfisch' "Mantis Shrimp" 'Anemone'

0

1

2

3

4

Das erste Element, die Zeichenfolge'shark', beginnt bei Index0, und die Liste endet bei Index4 mit dem Element'anemone'.

Da jedes Element in einer Python-Liste eine entsprechende Indexnummer hat, können wir auf Listen genauso zugreifen und sie bearbeiten wie mit anderen sequentiellen Datentypen.

Nun können wir ein einzelnes Element der Liste aufrufen, indem wir auf seine Indexnummer verweisen:

print(sea_creatures[1])
Outputcuttlefish

Die Indexnummern für diese Liste reichen von0 bis4, wie in der obigen Tabelle gezeigt. Um also eines der Elemente einzeln aufzurufen, beziehen wir uns auf die folgenden Indexnummern:

sea_creatures[0] = 'shark'
sea_creatures[1] = 'cuttlefish'
sea_creatures[2] = 'squid'
sea_creatures[3] = 'mantis shrimp'
sea_creatures[4] = 'anemone'

Wenn wir die Listesea_creatures mit einer Indexnummer von mehr als 4 aufrufen, liegt sie außerhalb des Bereichs, da sie nicht gültig ist:

print(sea_creatures[18])
OutputIndexError: list index out of range

Zusätzlich zu positiven Indexnummern können wir auch auf Elemente aus der Liste mit einer negativen Indexnummer zugreifen, indem wir ab dem Ende der Liste ab-1 rückwärts zählen. Dies ist besonders nützlich, wenn wir eine lange Liste haben und ein Element gegen Ende einer Liste lokalisieren möchten.

Für dieselbe Listesea_creatures sieht die Aufschlüsselung des negativen Index folgendermaßen aus:

'Hai' 'Tintenfisch' 'Tintenfisch' "Mantis Shrimp" 'Anemone'

-5

-4

-3

-2

-1

Wenn wir also den Artikel'squid' unter Verwendung seiner negativen Indexnummer ausdrucken möchten, können wir dies folgendermaßen tun:

print(sea_creatures[-3])
Outputsquid

Mit dem Operator+können wir Zeichenfolgenelemente in einer Liste mit anderen Zeichenfolgen verknüpfen:

print('Sammy is a ' + sea_creatures[0])
OutputSammy is a shark

Wir konnten das Zeichenfolgenelement bei der Indexnummer0 mit der Zeichenfolge'Sammy is a ' verketten. Wir können auch den Operator+ fürconcatenate 2 or more lists together verwenden.

Mit Indexnummern, die Elementen in einer Liste entsprechen, können wir diskret auf jedes Element einer Liste zugreifen und mit diesen Elementen arbeiten.

Elemente in Listen ändern

Mithilfe der Indizierung können Sie Elemente in der Liste ändern, indem Sie eine Indexnummer auf einen anderen Wert setzen. Dies gibt uns mehr Kontrolle über Listen, da wir die darin enthaltenen Elemente ändern und aktualisieren können.

Wenn wir den Zeichenfolgenwert des Elements am Index1 von'cuttlefish' in'octopus' ändern möchten, können wir dies folgendermaßen tun:

sea_creatures[1] = 'octopus'

Wenn wir nunsea_creatures drucken, ist die Liste anders:

print(sea_creatures)
Output['shark', 'octopus', 'squid', 'mantis shrimp', 'anemone']

Wir können den Wert eines Elements auch ändern, indem wir stattdessen eine negative Indexnummer verwenden:

sea_creatures[-3] = 'blobfish'
print(sea_creatures)
Output['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone']

Jetzt hat'blobfish''squid' durch die negative Indexzahl von-3 ersetzt (was der positiven Indexzahl von2 entspricht).

Die Möglichkeit, Elemente in Listen zu ändern, gibt uns die Möglichkeit, Listen auf effiziente Weise zu ändern und zu aktualisieren.

Slicing-Listen

Wir können auch einige Elemente aus der Liste aufrufen. Nehmen wir an, wir möchten nur die mittleren Elemente vonsea_creatures drucken. Dazu können wirslice erstellen. Mit Slices können wir mehrere Werte aufrufen, indem wir einen Bereich von Indexnummern erstellen, die durch einen Doppelpunkt[x:y]getrennt sind: s:

print(sea_creatures[1:4])
Output['octopus', 'blobfish', 'mantis shrimp']

Beim Erstellen eines Slice wie in[1:4] beginnt die erste Indexnummer dort, wo das Slice beginnt (einschließlich), und an der zweiten Indexnummer endet das Slice (exklusiv), weshalb in unserem Beispiel über den Elementen unter Position,1,2 und3 sind die Elemente, die ausgedruckt werden.

Wenn wir eines der Enden der Liste einfügen möchten, können wir eine der Zahlen in der Syntax vonlist[x:y]weglassen. Wenn wir beispielsweise die ersten 3 Elemente der Listesea_creatures drucken möchten - das wären'shark','octopus','blobfish' - können wir dies tun, indem wir Folgendes eingeben:

print(sea_creatures[:3])
Output['shark', 'octopus', 'blobfish']

Dies druckte den Anfang der Liste und stoppte unmittelbar vor dem Index3.

Um alle Elemente am Ende einer Liste einzuschließen, würden wir die Syntax umkehren:

print(sea_creatures[2:])
Output['blobfish', 'mantis shrimp', 'anemone']

Wir können auch negative Indexnummern verwenden, wenn wir Listen aufteilen, genau wie bei positiven Indexnummern:

print(sea_creatures[-4:-2])
print(sea_creatures[-3:])
Output['octopus', 'blobfish']
['blobfish', 'mantis shrimp', 'anemone']

Ein letzter Parameter, den wir beim Schneiden verwenden können, heißtstride. Er gibt an, wie viele Elemente vorwärts bewegt werden sollen, nachdem das erste Element aus der Liste abgerufen wurde. Bisher haben wir den Parameter stride weggelassen, und Python verwendet standardmäßig den Wert 1, damit jedes Element zwischen zwei Indexnummern abgerufen wird.

Die Syntax für diese Konstruktion lautetlist[x:y:z], wobei sichz auf Schritt bezieht. Machen wir eine größere Liste, schneiden sie in Scheiben und geben dem Schritt den Wert 2:

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

print(numbers[1:11:2])
Output[1, 3, 5, 7, 9]

Unsere Konstruktionnumbers[1:11:2] gibt die Werte zwischen Indexnummern einschließlich1 und ausschließlich11 aus. Der Schrittwert von2 weist das Programm an, nur alle anderen Elemente auszudrucken.

Wir können die ersten beiden Parameter weglassen und stride alleine als Parameter mit der Syntaxlist[::z] verwenden:

print(numbers[::3])
Output[0, 3, 6, 9, 12]

Durch Ausdrucken der Listenumbers mit dem Schritt3 wird nur jedes dritte Element gedruckt:

0, 1, 2,3, 4, 5,6, 7, 8,9, 10, 11,12

Das Schneiden von Listen mit positiven und negativen Indexnummern und das Anzeigen von Schritten ermöglichen es uns, Listen zu manipulieren und die Ausgabe zu erhalten, die wir erzielen möchten.

Ändern von Listen mit Operatoren

Mit Operatoren können Sie Änderungen an Listen vornehmen. Wir werden uns die Verwendung von+` and `+*+` operators and their compound forms `=+ und*= ansehen.

Mit dem Operator+ können zwei oder mehr Listen miteinander verknüpft werden:

sea_creatures = ['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone']
oceans = ['Pacific', 'Atlantic', 'Indian', 'Southern', 'Arctic']

print(sea_creatures + oceans)
Output['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone', 'Pacific', 'Atlantic', 'Indian', 'Southern', 'Arctic']

Da der Operator+verketten kann, kann er verwendet werden, um ein Element (oder mehrere) in Listenform am Ende einer anderen Liste hinzuzufügen. Denken Sie daran, den Artikel in eckige Klammern zu setzen:

sea_creatures = sea_creatures + ['yeti crab']
print (sea_creatures)
Output['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone', 'yeti crab']

Der Operator* kann zum Multiplizieren von Listen verwendet werden. Möglicherweise müssen Sie Kopien aller Dateien in einem Verzeichnis auf einem Server erstellen oder eine Wiedergabeliste für Freunde freigeben. In diesen Fällen müssen Sie die Datensammlungen multiplizieren.

Multiplizieren wir die Listesea_creaturesmit 2 und die Listeoceansmit 3:

print(sea_creatures * 2)
print(oceans * 3)
Output['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone', 'yeti crab', 'shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone', 'yeti crab']
['Pacific', 'Atlantic', 'Indian', 'Southern', 'Arctic', 'Pacific', 'Atlantic', 'Indian', 'Southern', 'Arctic', 'Pacific', 'Atlantic', 'Indian', 'Southern', 'Arctic']

Mit dem Operator*können wir unsere Listen so oft replizieren, wie wir es angegeben haben.

Wir können auch zusammengesetzte Formen der zusammengesetzten Operatoren+` and `+*+` operators with the assignment operator `+=+`. The `=+ und*= verwenden, um Listen schnell und automatisiert zu füllen. Sie können diese Operatoren verwenden, um Listen mit Platzhaltern auszufüllen, die Sie zu einem späteren Zeitpunkt beispielsweise mit von Benutzern bereitgestellten Eingaben ändern können.

Fügen wir der Listesea_creatures ein Element in Listenform hinzu. Dieses Element fungiert als Platzhalter. Diesen Platzhalter möchten wir mehrmals hinzufügen. Dazu verwenden wir den Operator+= mitfor loop.

for x in range(1,4):
    sea_creatures += ['fish']
    print(sea_creatures)
Output['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone', 'yeti crab', 'fish']
['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone', 'yeti crab', 'fish', 'fish']
['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone', 'yeti crab', 'fish', 'fish', 'fish']

Für jede Iteration der for-Schleife wird der ursprünglichen Listesea_creatures ein zusätzliches Listenelement von'fish' hinzugefügt.

Der Operator*=verhält sich ähnlich:

sharks = ['shark']

for x in range(1,4):
    sharks *= 2
    print(sharks)
Output['shark', 'shark']
['shark', 'shark', 'shark', 'shark']
['shark', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark']

Die Operatoren+` and `+*+` can be used to concatenate lists and multiply lists. The compound operators `=+ und*= können Listen verketten und Listen multiplizieren und die neue Identität an die ursprüngliche Liste übergeben.

Ein Objekt aus einer Liste entfernen

Elemente können mithilfe der Anweisungdel aus Listen entfernt werden. Dadurch wird der Wert an der von Ihnen in einer Liste angegebenen Indexnummer gelöscht.

Entfernen Sie aus der Listesea_creatures das Element'octopus'. Dieser Artikel befindet sich an der Indexposition von1. Um das Element zu entfernen, verwenden wir die Anweisungdelund rufen dann die Listenvariable und die Indexnummer dieses Elements auf:

sea_creatures =['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone', 'yeti crab']

del sea_creatures[1]
print(sea_creatures)
Output['shark', 'blobfish', 'mantis shrimp', 'anemone', 'yeti crab']

Jetzt befindet sich das Element an der Indexposition1, die Zeichenfolge'octopus', nicht mehr in unserer Listesea_creatures.

Wir können auch einen Bereich mit der Anweisungdelangeben. Angenommen, wir wollten nicht nur die Elemente'octopus', sondern auch'blobfish' und'mantis shrimp' entfernen. Wir können einen Bereich insea_creatures mit der Anweisungdel aufrufen, um dies zu erreichen:

sea_creatures =['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone', 'yeti crab']

del sea_creatures[1:4]
print(sea_creatures)
Output['shark', 'anemone', 'yeti crab']

Durch Verwendung eines Bereichs mit der Anweisungdel konnten wir die Elemente zwischen der Indexnummer von1 (einschließlich) und der Indexnummer von4 (exklusiv) entfernen und uns verlassen mit einer Liste von 3 Elementen nach dem Entfernen von 3 Elementen.

Mit der Anweisungdel können wir bestimmte Elemente aus dem Listendatentyp entfernen.

Erstellen einer Liste mit Listenelementen

Listen können mit Elementen definiert werden, die aus Listen bestehen, wobei jede Liste in Klammern in den größeren Klammern der übergeordneten Liste eingeschlossen ist:

sea_names = [[shark', 'octopus', 'squid', 'mantis shrimp'],['Sammy', 'Jesse', 'Drew', 'Jamie']]

Diese Listen in Listen werden verschachtelte Listen genannt.

Um auf ein Element in dieser Liste zugreifen zu können, müssen mehrere Indizes verwendet werden:

print(sea_names[1][0])
print(sea_names[0][0])
OutputSammy
shark

Die erste Liste hat, da sie einem Element entspricht, die Indexnummer 0, die die erste Nummer in der Konstruktion ist, und die zweite Liste die Indexnummer 1. Innerhalb jeder inneren verschachtelten Liste gibt es separate Indexnummern, die wir als zweite Indexnummer bezeichnen:

sea_names[0][0] = 'shark'
sea_names[0][1] = 'octopus'
sea_names[0][2] = 'squid'
sea_names[0][3] = 'mantis shrimp'

sea_names[1][0] = 'Sammy'
sea_names[1][1] = 'Jesse'
sea_names[1][2] = 'Drew'
sea_names[1][3] = 'Jamie'

Wenn Sie mit Listen von Listen arbeiten, ist es wichtig zu beachten, dass Sie sich auf mehr als eine Indexnummer beziehen müssen, um auf bestimmte Elemente in der jeweiligen verschachtelten Liste zuzugreifen.

Fazit

Der Listendatentyp ist ein flexibler Datentyp, der im Laufe Ihres Programms geändert werden kann. In diesem Lernprogramm wurden die grundlegenden Funktionen von Listen beschrieben, einschließlich Indizieren, Schneiden, Ändern und Verketten von Listen.

Weitere Informationen zum Arbeiten mit Listen in Python finden Sie unter „https://www.digitalocean.com/community/tutorials/how-to-use-list-methods-in-python-3[How To Use Listenmethoden] “und ungefährlist comprehensions, um Listen basierend auf vorhandenen Listen zu erstellen. Weitere Informationen zu Datentypen im Allgemeinen finden Sie in unserem Lernprogramm „https://www.digitalocean.com/community/tutorials/understanding-data-types-in-python-3[Understanding Data Types]“.