Tcl - Listes

List est l'un des types de données de base disponibles dans Tcl. Il est utilisé pour représenter une collection ordonnée d'articles. Il peut inclure différents types d'éléments dans la même liste. De plus, une liste peut contenir une autre liste.

Il est important de noter que ces listes sont complètement représentées sous forme de chaînes et traitées pour former des éléments individuels lorsque cela est nécessaire. Alors, évitez les grandes listes et dans de tels cas; utiliser un tableau.

Créer une liste

La syntaxe générale de la liste est donnée ci-dessous -

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

Quelques exemples sont donnés ci-dessous -

#!/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

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

red green blue
red green blue
red green blue

Ajout d'un élément à une liste

La syntaxe pour ajouter un élément à une liste est donnée ci-dessous -

append listName split_character value
# or
lappend listName value

Quelques exemples sont donnés ci-dessous -

#!/usr/bin/tclsh

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

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

orange blue red green

Longueur de la liste

La syntaxe pour la longueur de la liste est donnée ci-dessous -

llength listName

Un exemple de longueur de liste est donné ci-dessous -

#!/usr/bin/tclsh

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

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

4

Élément de liste à l'index

La syntaxe pour sélectionner un élément de liste à un index spécifique est donnée ci-dessous -

lindex listname index

Un exemple d'élément de liste à l'index est donné ci-dessous -

#!/usr/bin/tclsh

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

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

blue

Insérer un élément à l'index

La syntaxe pour insérer des éléments de liste à un index spécifique est donnée ci-dessous.

linsert listname index value1 value2..valuen

Un exemple d'insertion d'un élément de liste à un index spécifique est donné ci-dessous.

#!/usr/bin/tclsh

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

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

orange blue red black white green

Remplacer les éléments aux indices

La syntaxe pour remplacer les éléments de liste à des index spécifiques est donnée ci-dessous -

lreplace listname firstindex lastindex value1 value2..valuen

Un exemple de remplacement d'éléments de liste à des index spécifiques est donné ci-dessous.

#!/usr/bin/tclsh

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

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

orange blue black white

Définir l'élément à l'index

La syntaxe pour définir un élément de liste à un index spécifique est donnée ci-dessous -

lset listname index value

Un exemple de définition d'un élément de liste à un index spécifique est donné ci-dessous -

#!/usr/bin/tclsh

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

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

black blue red green

Transformer la liste en variables

La syntaxe pour copier des valeurs dans des variables est donnée ci-dessous -

lassign listname variable1 variable2.. variablen

Un exemple de transformation de liste en variables est donné ci-dessous -

#!/usr/bin/tclsh

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

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

orange
blue

Trier une liste

La syntaxe pour trier une liste est donnée ci-dessous -

lsort listname

Un exemple de tri d'une liste est donné ci-dessous -

#!/usr/bin/tclsh

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

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

blue green orange red