Учебники

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]

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

Live Demo

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

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

Live Demo

#!/usr/bin/tclsh

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

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

orange blue red green

Длина списка

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

llength listName

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

Live Demo

#!/usr/bin/tclsh

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

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

4

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

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

lindex listname index

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

Live Demo

#!/usr/bin/tclsh

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

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

blue

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

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

linsert listname index value1 value2..valuen

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

Live Demo

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

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

Live Demo

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

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

Live Demo

#!/usr/bin/tclsh

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

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

black blue red green

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

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

lassign listname variable1 variable2.. variablen

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

Live Demo

#!/usr/bin/tclsh

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

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

orange
blue

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

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

lsort listname

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

Live Demo

#!/usr/bin/tclsh

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

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