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