Arrays werden in verschiedenen Sprachen sehr unterschiedlich gehandhabt, seien Sie also vorsichtig, wenn Sie Array in anderen Sprachen lernen.
Was ist ein Array? (Zuerst ein kurzer Überblick)
Ich werde später mehr dazu sagen, aber zuerst sehen wir uns kurz an, was ein Array ist.
Angenommen, Sie haben einige experimentelle Daten, die Sie verarbeiten (berechnen) müssen. Sie haben nun z. B. 100 Daten und Sie haben folgendes geschrieben:
data1 = 0.10
data2 = 1.2
data3 = 3.2
:
:
data100 = 1.1
Um die Summe zu erhalten, müssen Sie folgendes schreiben:
summation = data1 + data2 + (omit) + data100
Sehr umständlich!
Wenn Sie zusätzliche Daten erhalten, müssen Sie das Folgende hinzufügen
data101 = 0.92
data102 = 5.8
data103 = 7.2
:
:
und auch das Programm ändern. Dies ist immer noch einfach, da es sich nur um eine einfache Summe handelt, aber kompliziertere Berechnungen (wie die Berechnung der Varianz) werden viel umständlicher sein. Es kann sogar schneller sein, sie von Hand zu berechnen.
An dieser Stelle kommen Arrays ins Spiel. Die erhaltenen Daten können wie folgt geschrieben werden:
data = [0.10, 1.2, 3.2, ...]
In diesem Fall können die einzelnen Daten als data[0]
, data[1]
, … verwendet werden.
Das obige Programm zur Ermittlung der Summe kann theoretisch wie folgt umgeschrieben werden
summation = data[0] + data[1] + (omit) + data[99]
aber noch viel besser:
summation = 0
for i in range(len(data)):
summation += data[i]
(len()
wird später in diesem Artikel behandelt).
Wenn sich die Anzahl der Daten oder der Inhalt des Arrays data
ändert, muss sich der Summierungsteil überhaupt nicht ändern.
Dadurch wird das Programm kürzer und damit lesbarer.
Also: ein Array ist eine Sammlung von Daten (Werten).
In Python wird dieser Datentyp Liste genannt, wird aber in diesem
Dokument als Array
bezeichnet.
Außerdem kann das obige Programm in Python etwas eleganter geschrieben werden. Dies wird im Folgenden beschrieben.
Wie man Arrays verwendet
Schauen wir uns die Arrays genauer an.
Definition eines Arrays
Um ein Array zu definieren wird es, wie Sie im obigen Beispiel sehen können, wie folgt geschrieben:
data = [10, 20, 30]
Die linke Seite ist die gleiche wie die bisherige Definition der Variablen. Die rechte Seite ist die Art und Weise, wie man ein Array schreibt. Die Daten werden in eckigen Klammern, getrennt durch Kommata, angegeben. Jede Angabe (in diesem Fall 10, 20 usw.) wird als Element des Arrays (bzw. Arrayelement) bezeichnet.
In Python ist es möglich, den ganzen Inhalt eines Arrays mit print()
anzuzeigen.
Geben Sie das folgende Programm ein und führen Sie es aus.
data = [10, 20, 30]
print(data)
Verwendung von Elementen eines Arrays
Um mit einzelnen Elementen eines Arrays zu arbeiten, verwenden Sie den
Variablennamen + [ + Zahl + ], wie in data[1]
.
Diese Zahl wird als Index bezeichnet.
Arrays von Python werden von 0 an indiziert.
Um das erste Element anzuzeigen, verwenden Sie daher print(data[0])
.
Geben Sie das folgende Programm ein und führen Sie es aus.
data = [10, 20, 30]
print(data[0])
print(data[1])
print(data[2])
Wie man die Anzahl der Elemente (Länge) eines Arrays bestimmt
Die Anzahl der Elemente in einem Array wird oft als Länge
bezeichnet.
Die Länge eines Arrays kann mit len(array)
ermittelt werden.
Zum Beispiel:
data = [1, 2, 5]
print(len(data))
Wenn Sie dieses Programm ausführen, wird als Ergebnis 3 angezeigt.
Beachten Sie, dass len(array)
die Anzahl der Elemente im Array ist.
Andererseits ist zu beachten, dass der letzte Index eines Arrays len(array) - 1
ist.
Wenn Sie die Summe eines Arrays berechnen wollen, können Sie schreiben:
data = [1.2, 3, 5, 1.1]
summation = 0
for i in range(len(data)):
summation += data[i]
Außerdem dürfen Sie die Anzahl der Daten nicht direkt in das Programm eingeben:
for i in range(4): # ! schlechter Schreibstil !
summation += data[i]
Dies ist syntaktisch nicht falsch, aber die direkte Angabe der Anzahl
von Elementen im Programm in Form von einer konkreten Zahl (eine
solche Schreibweise wird als Hartkodierung
(eng. hard
coding) bezeichnet) ist ein Nährboden für Fehler.
Wenn sich also die Anzahl der Elemente im Array ändert, muss nicht nur
das Array selbst, sondern auch die for-Schleife geändert werden.
Aber Sie sollten nur die Daten ändern müssen, wenn sich die Anzahl der
Daten ändert.
len()
, um die Länge eines Arrays zu
ermitteln.
Geben Sie das folgende Programm ein und führen Sie es aus.
data = [10, 20, 30]
print(data)
print(len(data))
for i in range(len(data)):
print("data[", i, "] =", data[i])
Geben Sie das folgende Programm ein und führen Sie es aus.
data = [10, 20, 30]
print(data)
print(len(data))
summation = 0
for i in range(len(data)):
summation += data[i]
print(summation)
-
Geben Sie das folgende Programm ein und führen Sie es aus.
# ! Schlechte Schreibweise ! data = [10, 20, 30] print(data) print(len(data)) summation = 0 for i in range(3): summation += data[i] print(summation)
-
Geben Sie zusätzliche Daten in
data
in der 3. Zeile ein, zum Beispiel:data = [10, 20, 30, 40]
und ändern Sie das Programm, damit die Summe aller Elemente des Arrays berechnet wird (d. h. wenn Sie 40 als neues Element hinzufügen, sollten Sie 100 als Endergebnis erhalten).
-
Überlegen Sie, warum dies keine gute Art zu schreiben ist.
Array und for
Bislang wurden die Elemente eines Arrays immer durch Indizes angegeben. Das liegt daran, dass wir Sie mit der Beziehung zwischen Arrays und Indizes vertraut machen möchten.
In Python kann diese Schleife jedoch etwas sauberer geschrieben werden.
data = [10, 20, 30]
print(data)
print(len(data))
summation = 0
for elem in data:
summation += elem
print(summation)
Auf diese Weise geschrieben, führt die Anweisung for
nacheinander
eine Schleife mit den Elementen von data
in elem
aus.
Im Vergleich zum vorherigen Beispiel hat sich
for i in range(len(data)):
summation += data[i]
in
for elem in data:
summation += elem
geändert.
Die Variable i
ist nicht mehr vorhanden und das Programm ist kürzer.
Dies ist ein eher pythonartiger (wird manchmal als pythonisch (eng. pythonic) bezeichnet) Schreibstil.
Hier wurde die Variable in for
als elem
(statt i
) geschrieben,
um deutlich zu machen, dass es sich um ein Element und nicht um einen
Index handelt.
Aus grammatikalischer Sicht kann i
so stehen gelassen werden, aber
i
wird normalerweise für ganzzahlige Werte zum Zählen (wie (0,) 1,
2, 3, …) verwendet (solche Variablen werden manchmal auch als
Zähler bezeichnet), deshalb sollte es hier vermieden werden.
Führen Sie jedes der beiden folgenden Programme aus. Prüfen Sie, wo und wie das erste und das zweite Programm sich entsprechen.
data = [10, 20, 30]
for i in range(len(data)):
print(data[i])
data = [10, 20, 30]
for elem in data:
print(elem)
Hinweis zur Initialisierung eines Arrays
Wie bereits erläutert, muss bei der Verwendung eines Arrays dieses zunächst definiert werden, z. B.:
data = [1, 2, 3]
Aber vor Definition von data
kann man nicht wie folgt schreiben:
data[0] = 1.2
Wenn Sie in Ihrem Programm ein Element eines Arrays hinzufügen möchten, können Sie array.append(element)
schreiben:
data = [] # data ist ein (leeres) Array
data.append(10)
Dies bedeutet, dass ein Element zu diesem Array (am Ende) hinzugefügt wird.
Beachten Sie, dass Sie nicht wie folgt schreiben können:
data = []
data[0] = 10 # Fehler!
Mit anderen Worten:
-
Eine bereits bestehenden Elemente eines Arrays können umgeschrieben werden als
data[0] = 1.2
usw. -
Elemente von einem Array, die noch nicht existieren, können nur durch spezielle Methoden (z. B.
append()
1) hinzugefügt werden.
append()
kann auch für bereits definierte Arrays verwendet werden, d. h. wenn Sie
data = [10, 20, 30]
data.append(40)
print(data)
schreiben, erhalten Sie [10, 20, 30, 40]
als das Ergebnis.
Geben Sie das folgende Programm ein und führen Sie es aus. Was passiert und warum?
data = []
for i in range(10):
data.append(i * 10)
print(data)
(Fortgeschrittene) Kopieren eines Arrays
Obwohl dies etwas kompliziert ist, wird das Folgende hier erklärt, weil man oft Fehler macht.
Seien Sie vorsichtig, wenn Sie von Kopieren eines Arrays
sprechen.
Wenn Sie eine Kopie eines Arrays erstellen möchten und das Folgende
schreiben, werden Sie wahrscheinlich nicht das erwartete Ergebnis
erhalten.
array1 = [1, 2, 3]
array2 = array1
Sie könnten wie folgt schreiben, um das erste Element von array1
zu
ändern:
array1[0] = 2
Mal sehen, was hier passiert.
array1 = [1, 2, 3]
array2 = array1
print("Initial values")
print(array1)
print(array2)
array1[0] = 2
print("After change")
print(array1)
print(array2)
Man würde erwarten, dass nur array1
geändert wird, also dass man
[2, 2, 3]
[1, 2, 3]
erhält, aber in Wirklichkeit wurde auch array2
geändert.
Was ist hier eigentlich los?
In Bezug auf das Whiteboard bedeutet dies, dass ein zusätzlicher Name auf dem Whiteboard für das Array vergeben wurde2.
Um ein Array zu kopieren, müssen Sie daher zunächst ein neues Array erstellen und dann die Elemente einzeln kopieren. Es gibt mehrere Möglichkeiten, eine Kopie eines Arrays zu erstellen, aber ich zeige Ihnen nur die einfachste Methode.
array1 = [1, 2, 3]
array2 = []
for elem in array1:
array2.append(elem)
# Oder:
# for i in range(len(array1)):
# array2.append(array1[i])
Überlegen Sie, was passiert (angezeigt wird), wenn Sie das folgende Programm ausführen. Versuchen Sie dann, ihn auszuführen. Vergleichen Sie sie mit der obigen Übung und stellen Sie die Unterschiede fest.
array1 = [1, 2, 3]
array2 = []
for elem in array1:
array2.append(elem)
# Oder:
# for i in range(len(array1)):
# array2.append(array1[i])
print("Initial values")
print(array1)
print(array2)
array1[0] = 2
print("After change")
print(array1)
print(array2)
Funktionen und Arrays
In Python können Sie Arrays als Argumente und Rückgabewerte von Funktionen verwenden.
Es folgt ein Beispiel für eine Funktion, die ein Array als Argument verwendet (der Rückgabewert in diesem Beispiel ist eine normale Zahl).
def sum_array(arr):
summation = 0
for i in range(len(arr)):
summation += arr[i]
return summation
data = [10, 20, 30]
print(sum_array(data))
Geben Sie dieses Programm ein und führen Sie es aus.
Übungen
Machen Sie die folgenden Übungen zur Wiederholung. Es ist anzuraten, dass Sie zumindest die erste Übung durchführen.
Schreiben Sie eine Funktion, die ein Array als Argument nimmt, seinen
Mittelwert berechnet und ihn zurückgibt.
Geben Sie auch data = [71, 80, 89]
als Daten ein und verwenden Sie
diese Funktion, um den Mittelwert dieser Daten zu berechnen.
Schreiben Sie eine Funktion, die ein Array als Argument nimmt, seine
Varianz berechnet und sie zurückgibt.
Geben Sie auch data = [71, 80, 89]
als Daten ein und verwenden Sie
diese Funktion, um die Varianz dieser Daten zu berechnen.
Zusammenfassung
Auf dieser Seite haben Sie über Arrays gelernt.
-
Ein Array ist eine Sammlung von Daten.
-
Ein Array kann definiert werden als
data = [1, 2, 3]
usw. -
Jedes Element kann durch einen Index angegeben werden.
-
Array-Indizes beginnen bei 0.
-
Die Anzahl der Elemente in einem Array kann als
len(array)
ermittelt werden.