Tcl - Listen

Liste ist einer der grundlegenden Datentypen, die in Tcl verfügbar sind. Es wird zur Darstellung einer geordneten Sammlung von Artikeln verwendet. Es kann verschiedene Arten von Elementen in derselben Liste enthalten. Ferner kann eine Liste eine andere Liste enthalten.

Ein wichtiger Punkt ist, dass diese Listen vollständig als Zeichenfolgen dargestellt und bei Bedarf zu einzelnen Elementen verarbeitet werden. Vermeiden Sie also große Listen und in solchen Fällen; Array verwenden.

Liste erstellen

Die allgemeine Syntax für die Liste ist unten angegeben -

set listName { item1 item2 item3 .. itemn }
# or
set listName [list item1 item2 item3]
# or 
set listName [split "items separated by a character" split_character]

Einige Beispiele sind unten angegeben -

#!/usr/bin/tclsh

set colorList1 {red green blue}
set colorList2 [list red green blue]
set colorList3 [split "red_green_blue" _]
puts $colorList1
puts $colorList2
puts $colorList3

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

red green blue
red green blue
red green blue

Element an eine Liste anhängen

Die Syntax zum Anhängen eines Elements an eine Liste ist unten angegeben:

append listName split_character value
# or
lappend listName value

Einige Beispiele sind unten angegeben -

#!/usr/bin/tclsh

set var orange
append var " " "blue"
lappend var "red" 
lappend var "green" 
puts $var

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

orange blue red green

Länge der Liste

Die Syntax für die Länge der Liste ist unten angegeben -

llength listName

Beispiel für die Länge der Liste ist unten angegeben -

#!/usr/bin/tclsh

set var {orange blue red green}
puts [llength $var]

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

4

Listenelement im Index

Die Syntax zum Auswählen eines Listenelements an einem bestimmten Index ist unten angegeben:

lindex listname index

Beispiel für Listeneintrag am Index ist unten angegeben -

#!/usr/bin/tclsh

set var {orange blue red green}
puts [lindex $var  1]

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

blue

Element am Index einfügen

Die Syntax zum Einfügen von Listenelementen an einem bestimmten Index ist unten angegeben.

linsert listname index value1 value2..valuen

Ein Beispiel für das Einfügen eines Listenelements an einem bestimmten Index ist unten angegeben.

#!/usr/bin/tclsh

set var {orange blue red green}
set var [linsert  $var 3 black white]
puts $var

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

orange blue red black white green

Elemente an Indizes ersetzen

Die Syntax zum Ersetzen von Listenelementen an bestimmten Indizes ist unten angegeben:

lreplace listname firstindex lastindex value1 value2..valuen

Ein Beispiel zum Ersetzen von Listenelementen an bestimmten Indizes ist unten angegeben.

#!/usr/bin/tclsh

set var {orange blue red green}
set var [lreplace $var 2 3 black white]
puts $var

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

orange blue black white

Set Item at Index

Die Syntax zum Festlegen des Listenelements an einem bestimmten Index ist unten angegeben:

lset listname index value

Ein Beispiel für das Setzen eines Listenelements auf einen bestimmten Index finden Sie unten -

#!/usr/bin/tclsh

set var {orange blue red green}
lset var 0 black 
puts $var

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

black blue red green

Liste in Variablen umwandeln

Die Syntax zum Kopieren von Werten in Variablen ist unten angegeben -

lassign listname variable1 variable2.. variablen

Ein Beispiel für die Umwandlung einer Liste in Variablen finden Sie unten -

#!/usr/bin/tclsh

set var {orange blue red green}
lassign $var colour1 colour2
puts $colour1
puts $colour2

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

orange
blue

Eine Liste sortieren

Die Syntax zum Sortieren einer Liste ist unten angegeben -

lsort listname

Ein Beispiel zum Sortieren einer Liste finden Sie unten -

#!/usr/bin/tclsh

set var {orange blue red green}
set var [lsort $var]
puts $var

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

blue green orange red