Список является одним из основных типов данных, доступных в 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
Когда приведенный выше код выполняется, он дает следующий результат —