Tcl - Списки

Список - один из основных типов данных, доступных в Tcl. Он используется для представления упорядоченного набора элементов. Он может включать в себя элементы разных типов в одном списке. Кроме того, список может содержать другой список.

Важно отметить, что эти списки полностью представлены в виде строк и при необходимости обрабатываются для формирования отдельных элементов. Так что избегайте больших списков и в таких случаях; использовать массив.

Создание списка

Общий синтаксис для списка приведен ниже -

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

Некоторые примеры приведены ниже -

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

Когда приведенный выше код выполняется, он дает следующий результат:

red green blue
red green blue
red green blue

Добавление элемента в список

Синтаксис для добавления элемента в список приведен ниже -

append listName split_character value
# or
lappend listName value

Некоторые примеры приведены ниже -

#!/usr/bin/tclsh

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

Когда приведенный выше код выполняется, он дает следующий результат:

orange blue red green

Длина списка

Синтаксис длины списка приведен ниже -

llength listName

Пример длины списка приведен ниже -

#!/usr/bin/tclsh

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

Когда приведенный выше код выполняется, он дает следующий результат:

4

Элемент списка в индексе

Синтаксис для выбора элемента списка по определенному индексу приведен ниже -

lindex listname index

Пример для элемента списка в индексе приведен ниже -

#!/usr/bin/tclsh

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

Когда приведенный выше код выполняется, он дает следующий результат:

blue

Вставить элемент в индекс

Синтаксис для вставки элементов списка по определенному индексу приведен ниже.

linsert listname index value1 value2..valuen

Пример для вставки элемента списка по определенному индексу приведен ниже.

#!/usr/bin/tclsh

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

Когда приведенный выше код выполняется, он дает следующий результат:

orange blue red black white green

Заменить элементы в индексах

Синтаксис для замены элементов списка по определенным индексам приведен ниже -

lreplace listname firstindex lastindex value1 value2..valuen

Пример замены элементов списка по конкретным индексам приведен ниже.

#!/usr/bin/tclsh

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

Когда приведенный выше код выполняется, он дает следующий результат:

orange blue black white

Установить элемент в индекс

Синтаксис для установки элемента списка по определенному индексу приведен ниже -

lset listname index value

Пример установки элемента списка по определенному индексу приведен ниже -

#!/usr/bin/tclsh

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

Когда приведенный выше код выполняется, он дает следующий результат:

black blue red green

Преобразовать список в переменные

Синтаксис для копирования значений в переменные приведен ниже -

lassign listname variable1 variable2.. variablen

Пример преобразования списка в переменные приведен ниже -

#!/usr/bin/tclsh

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

Когда приведенный выше код выполняется, он дает следующий результат:

orange
blue

Сортировка списка

Синтаксис для сортировки списка приведен ниже -

lsort listname

Пример сортировки списка приведен ниже -

#!/usr/bin/tclsh

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

Когда приведенный выше код выполняется, он дает следующий результат:

blue green orange red