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