Tcl - Danh sách

Danh sách là một trong những kiểu dữ liệu cơ bản có sẵn trong Tcl. Nó được sử dụng để đại diện cho một bộ sưu tập các mặt hàng có thứ tự. Nó có thể bao gồm các loại mục khác nhau trong cùng một danh sách. Hơn nữa, một danh sách có thể chứa một danh sách khác.

Một điều quan trọng cần lưu ý là các danh sách này được biểu diễn dưới dạng chuỗi hoàn toàn và được xử lý để tạo thành các mục riêng lẻ khi được yêu cầu. Vì vậy, hãy tránh những danh sách lớn và trong những trường hợp như vậy; sử dụng mảng.

Tạo danh sách

Cú pháp chung cho danh sách được đưa ra dưới đây:

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

Một số ví dụ được đưa ra dưới đây -

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

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

red green blue
red green blue
red green blue

Nối Mục vào Danh sách

Cú pháp để thêm mục vào danh sách được đưa ra dưới đây:

append listName split_character value
# or
lappend listName value

Một số ví dụ được đưa ra dưới đây -

#!/usr/bin/tclsh

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

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

orange blue red green

Độ dài của danh sách

Cú pháp cho độ dài của danh sách được đưa ra dưới đây:

llength listName

Ví dụ về độ dài của danh sách được đưa ra dưới đây:

#!/usr/bin/tclsh

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

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

4

Liệt kê Mục tại Chỉ mục

Cú pháp để chọn mục danh sách tại chỉ mục cụ thể được đưa ra dưới đây:

lindex listname index

Ví dụ cho mục danh sách tại chỉ mục được đưa ra dưới đây:

#!/usr/bin/tclsh

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

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

blue

Chèn mục vào chỉ mục

Cú pháp để chèn các mục danh sách tại chỉ mục cụ thể được đưa ra dưới đây.

linsert listname index value1 value2..valuen

Ví dụ để chèn mục danh sách tại chỉ mục cụ thể được đưa ra dưới đây.

#!/usr/bin/tclsh

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

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

orange blue red black white green

Thay thế các mục tại chỉ số

Cú pháp để thay thế các mục danh sách tại các chỉ mục cụ thể được đưa ra dưới đây:

lreplace listname firstindex lastindex value1 value2..valuen

Ví dụ để thay thế các mục danh sách tại các chỉ mục cụ thể được đưa ra dưới đây.

#!/usr/bin/tclsh

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

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

orange blue black white

Đặt mục tại chỉ mục

Cú pháp để thiết lập mục danh sách tại chỉ mục cụ thể được đưa ra dưới đây:

lset listname index value

Ví dụ để thiết lập mục danh sách tại chỉ mục cụ thể được đưa ra dưới đây:

#!/usr/bin/tclsh

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

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

black blue red green

Chuyển đổi danh sách thành các biến

Cú pháp để sao chép giá trị vào biến được đưa ra dưới đây:

lassign listname variable1 variable2.. variablen

Ví dụ để chuyển đổi danh sách thành các biến được đưa ra dưới đây:

#!/usr/bin/tclsh

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

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

orange
blue

Sắp xếp một danh sách

Cú pháp sắp xếp danh sách được đưa ra dưới đây:

lsort listname

Dưới đây là một ví dụ để sắp xếp danh sách:

#!/usr/bin/tclsh

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

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

blue green orange red