Tcl - Liste

List è uno dei tipi di dati di base disponibili in Tcl. Viene utilizzato per rappresentare una raccolta ordinata di elementi. Può includere diversi tipi di elementi nello stesso elenco. Inoltre, un elenco può contenere un altro elenco.

Una cosa importante da notare è che questi elenchi sono rappresentati completamente come stringhe ed elaborati per formare singoli elementi quando richiesto. Quindi, evitare elenchi di grandi dimensioni e in questi casi; usa l'array.

Creazione di un elenco

La sintassi generale per l'elenco è fornita di seguito:

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

Di seguito vengono forniti alcuni esempi:

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

Quando il codice sopra viene eseguito, produce il seguente risultato:

red green blue
red green blue
red green blue

Aggiunta di un elemento a un elenco

La sintassi per aggiungere un elemento a un elenco è fornita di seguito:

append listName split_character value
# or
lappend listName value

Di seguito vengono forniti alcuni esempi:

#!/usr/bin/tclsh

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

Quando il codice sopra viene eseguito, produce il seguente risultato:

orange blue red green

Lunghezza dell'elenco

La sintassi per la lunghezza dell'elenco è fornita di seguito:

llength listName

Di seguito viene fornito un esempio di lunghezza dell'elenco:

#!/usr/bin/tclsh

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

Quando il codice sopra viene eseguito, produce il seguente risultato:

4

Voce di elenco all'indice

Di seguito viene fornita la sintassi per la selezione di una voce di elenco a un indice specifico:

lindex listname index

Di seguito viene fornito un esempio per l'elemento dell'elenco all'indice:

#!/usr/bin/tclsh

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

Quando il codice sopra viene eseguito, produce il seguente risultato:

blue

Inserisci elemento all'indice

La sintassi per l'inserimento di voci di elenco in corrispondenza di un indice specifico è fornita di seguito.

linsert listname index value1 value2..valuen

Di seguito viene fornito un esempio per l'inserimento di voci di elenco in un indice specifico.

#!/usr/bin/tclsh

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

Quando il codice sopra viene eseguito, produce il seguente risultato:

orange blue red black white green

Sostituisci gli elementi negli indici

Di seguito viene fornita la sintassi per la sostituzione degli elementi dell'elenco in corrispondenza di indici specifici:

lreplace listname firstindex lastindex value1 value2..valuen

Di seguito viene fornito un esempio per la sostituzione degli elementi dell'elenco in corrispondenza di indici specifici.

#!/usr/bin/tclsh

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

Quando il codice sopra viene eseguito, produce il seguente risultato:

orange blue black white

Imposta elemento all'indice

Di seguito viene fornita la sintassi per l'impostazione della voce dell'elenco a un indice specifico:

lset listname index value

Di seguito viene fornito un esempio per l'impostazione della voce dell'elenco in corrispondenza di un indice specifico:

#!/usr/bin/tclsh

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

Quando il codice sopra viene eseguito, produce il seguente risultato:

black blue red green

Trasforma elenco in variabili

Di seguito viene fornita la sintassi per copiare i valori nelle variabili:

lassign listname variable1 variable2.. variablen

Di seguito viene fornito un esempio per trasformare una lista in variabili:

#!/usr/bin/tclsh

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

Quando il codice sopra viene eseguito, produce il seguente risultato:

orange
blue

Ordinamento di un elenco

La sintassi per ordinare un elenco è fornita di seguito:

lsort listname

Di seguito viene fornito un esempio per l'ordinamento di un elenco:

#!/usr/bin/tclsh

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

Quando il codice sopra viene eseguito, produce il seguente risultato:

blue green orange red