Listen und Lineare Algebra
Listen in CindyScript verwenden¶
Listen gehören zu den grundlegendsten und elementarsten Konzepten von CindyScript. In CindyScript dienen Listen mehreren Zwecken. Sie dienen als
- aufzählbare Felder von Objekten
- strukturierte Datenanordnungen
- Vektoren
- Matrizen
Dieser Abschnitt behandelt die sehr allgemeinen Aspekte der Listenerstellung und des Zugriffs auf ihre Elemente sowie alle elementaren Aspekte der Array-Funktionalität. Weitere Informationen zu allen anderen Aspekten von Listen finden Sie in den folgenden Abschnitten:
- Elementare Listenoperationen
- Erweiterte Listenoperationen
- Listen geometrischer Elemente
- Vektoren und Matrizen
Listen erstellen¶
Listen können sehr einfach erstellt werden, indem die Elemente in eckige Klammern gesetzt und durch Kommas getrennt werden. Beispielsweise:
[45,12.5,123,2,5.5,5]
ist eine Liste von Zahlen.
["this", "is", "a", "list", "of", "strings"]
ist eine Liste von Zeichenketten. Objekte verschiedener Art können in einer Liste gemischt werden:
["this", 3,"is",5 , "a",654, "mixed",234 , "list"]
Listen können auch Listen als Elemente haben, und diese können beliebig verschachtelt werden.
[[4,6], ["a", "b"], 1, [4, "b", [23, "b"]], [ ]]
Das letzte Element [ ] dieser Liste enthält keine Elemente. Es ist die leere Liste.
Alternativ können Listen mit mindestens zwei Elementen auch in runde Klammern (...) gesetzt werden. Dies ist manchmal praktisch, um eine mathematisch ansprechendere Notation im Code zu haben. Ein dreidimensionaler Vektor kann dann wie folgt geschrieben werden:
(7.3,9.3,-14.3)
Zugriff auf Listenelemente: take(<list>,<int>)¶
Beschreibung: Man kann auf die einzelnen Elemente einer Liste entweder mit dem Infix-Operator <list>_<int> oder mit dem Funktionsoperator take(<list>,<int>) zugreifen. Die Indizes beginnen mit der Nummer 1. Wenn der zu erreichende Index kleiner als 1 oder größer als die Anzahl der Elemente in der Liste ist, wird der Wert ___ zurückgegeben. Außerdem wird eine Warnmeldung auf der Konsole ausgegeben.
| Code | Ergebnis |
|---|---|
[2 ,5 ,7 ,3]_3 |
7 |
take([2 ,5 ,7 ,3],2) |
5 |
[2 ,5 ,7 ,3]_5 |
___ |
Der Index kann auch eine beliebige Berechnung sein. Außerdem können Indizes auf die verschachtelten Teile einer verschachtelten Liste zugreifen.
| Code | Ergebnis |
|---|---|
[ [2, [4,5]],1]_1 |
[2,[4,5]] |
[ [2, [4,5]],1]_(7-5) |
1 |
[ [2, [4,5]],1]_1_2 |
[4,5] |
[ [2, [4,5]],1]_1_2_2 |
5 |
[ [2, [4,5]],1]_1_2_2_2 |
___ |
Wenn eine Liste in einer Variablen gespeichert ist, können die einzelnen Einträge nach ihrem Zugriff über den _-Operator festgelegt werden. Zum Beispiel wird nach dem Code-Fragment
der Wert von a zu [[2,["B",5]],"A"].
Fortgeschrittene Verwendung¶
Der List-Element-Accessor hat einige weitere leistungsstarke Optionen. Durch die Verwendung negativer Zahlen als Indizes kann man auf die Listeneinträge vom Ende zum Anfang zugreifen. Die folgenden Beispiele veranschaulichen diese Möglichkeit:
| Code | Ergebnis |
|---|---|
[2 ,5 ,7 ,3]_(-1) |
3 |
take([2 ,5 ,7 ,3],(-3)) |
5 |
[ [2,6] ,5 ,7 ,3]_(-4)_(-1) |
6 |
Es ist auch möglich, Listen von Ganzzahlen als Indizes zu verwenden. Dann wird eine Liste zurückgegeben, die den angegebenen Listeneinträgen entspricht.
| Code | Ergebnis |
|---|---|
[2 ,5 ,7 ,3]_[2,3] |
[5,7] |
[2 ,5 ,7 ,3]_[-1,1,1] |
[3,2,2] |
Diese Seite wurde automatisch mit KI (Claude) übersetzt und wartet noch auf Überprüfung.
→ Alle KI-übersetzten Seiten