Tcl - Listas
La lista es uno de los tipos de datos básicos disponibles en Tcl. Se utiliza para representar una colección ordenada de elementos. Puede incluir diferentes tipos de elementos en la misma lista. Además, una lista puede contener otra lista.
Una cosa importante que debe tenerse en cuenta es que estas listas se representan como cadenas por completo y se procesan para formar elementos individuales cuando sea necesario. Por lo tanto, evite listas grandes y en tales casos; usar matriz.
Crear una lista
La sintaxis general de la lista se da a continuación:
set listName { item1 item2 item3 .. itemn }
# or
set listName [list item1 item2 item3]
# or
set listName [split "items separated by a character" split_character]
A continuación se dan algunos ejemplos:
#!/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
Cuando se ejecuta el código anterior, produce el siguiente resultado:
red green blue
red green blue
red green blue
Agregar artículo a una lista
La sintaxis para agregar un elemento a una lista se da a continuación:
append listName split_character value
# or
lappend listName value
A continuación se dan algunos ejemplos:
#!/usr/bin/tclsh
set var orange
append var " " "blue"
lappend var "red"
lappend var "green"
puts $var
Cuando se ejecuta el código anterior, produce el siguiente resultado:
orange blue red green
Longitud de la lista
La sintaxis para la longitud de la lista se da a continuación:
llength listName
A continuación se muestra un ejemplo de la longitud de la lista:
#!/usr/bin/tclsh
set var {orange blue red green}
puts [llength $var]
Cuando se ejecuta el código anterior, produce el siguiente resultado:
4
Elemento de lista en índice
La sintaxis para seleccionar el elemento de la lista en un índice específico se da a continuación:
lindex listname index
A continuación se muestra un ejemplo de elemento de lista en el índice:
#!/usr/bin/tclsh
set var {orange blue red green}
puts [lindex $var 1]
Cuando se ejecuta el código anterior, produce el siguiente resultado:
blue
Insertar elemento en el índice
La sintaxis para insertar elementos de lista en un índice específico se proporciona a continuación.
linsert listname index value1 value2..valuen
A continuación se proporciona un ejemplo para insertar un elemento de lista en un índice específico.
#!/usr/bin/tclsh
set var {orange blue red green}
set var [linsert $var 3 black white]
puts $var
Cuando se ejecuta el código anterior, produce el siguiente resultado:
orange blue red black white green
Reemplazar elementos en índices
La sintaxis para reemplazar elementos de la lista en índices específicos se da a continuación:
lreplace listname firstindex lastindex value1 value2..valuen
A continuación se proporciona un ejemplo para reemplazar elementos de la lista en índices específicos.
#!/usr/bin/tclsh
set var {orange blue red green}
set var [lreplace $var 2 3 black white]
puts $var
Cuando se ejecuta el código anterior, produce el siguiente resultado:
orange blue black white
Establecer elemento en índice
La sintaxis para configurar el elemento de la lista en un índice específico se proporciona a continuación:
lset listname index value
A continuación se muestra un ejemplo para configurar un elemento de la lista en un índice específico:
#!/usr/bin/tclsh
set var {orange blue red green}
lset var 0 black
puts $var
Cuando se ejecuta el código anterior, produce el siguiente resultado:
black blue red green
Transformar lista en variables
La sintaxis para copiar valores a variables se da a continuación:
lassign listname variable1 variable2.. variablen
A continuación se muestra un ejemplo para transformar la lista en variables:
#!/usr/bin/tclsh
set var {orange blue red green}
lassign $var colour1 colour2
puts $colour1
puts $colour2
Cuando se ejecuta el código anterior, produce el siguiente resultado:
orange
blue
Ordenar una lista
La sintaxis para ordenar una lista se da a continuación:
lsort listname
A continuación se ofrece un ejemplo para ordenar una lista:
#!/usr/bin/tclsh
set var {orange blue red green}
set var [lsort $var]
puts $var
Cuando se ejecuta el código anterior, produce el siguiente resultado:
blue green orange red