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