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}

# 3 表示在列表中的位置...

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

时间: 2024-11-04 01:02:19

TCL列表的相关文章

TCL语言笔记:TCL中的列表操作

一.介绍 列表则是具有特殊解释的字符串.Tcl 中的列表操作和其它 Tcl 命令一样具有相同的结构.列表可应用在诸如 foreach 这样的以列表为变元的循环命令中,也应于构建 eval 命令的延迟命令字符串. 二.TCL列表相关命令 命令 说明 list arg1 arg2 ... 创建一个列表 lindex list  index 返回列表 list 中的第 index 个元素(element)值 llength list 计算列表 list 元素个数 lrange list index1

SQLite 学习笔记

SQLite 学习笔记. 一.SQLite 安装    访问http://www.sqlite.org/download.html下载对应的文件.    1.在 Windows 上安装 SQLite.需要下载 sqlite-shell-win32-*.zip 和 sqlite-dll-win32-*.zip 压缩文件.        创建文件夹 C:\sqlite,并在此文件夹下解压上面两个压缩文件,将得到 sqlite3.def.sqlite3.dll 和 sqlite3.exe 文件.   

Android-adb 常用命令 和 sqlite

Android开发环境中,ADB是我们进行Android开发经常要用的调试工具,它的使用当然是我们Android开发者必须要掌握的. ADB概述 Android Debug Bridge,Android调试桥接器,简称adb,是用于管理模拟器或真机状态的万能工具,采用了客户端-服务器模型,包括三个部分: 1.客户端部分,运行在开发用的电脑上,可以在命令行中运行adb命令来调用该客户端,像ADB插件和DDMS这样的Android工具也可以调用adb客户端. 2.服务端部分,是运行在开发用电脑上的后

Android菜鸟成长记5-ADB和sqllite

Android开发环境中,ADB是我们进行Android开发经常要用的调试工具,它的使用当然是我们Android开发者必须要掌握的. ADB概述 Android Debug Bridge,Android调试桥接器,简称adb,是用于管理模拟器或真机状态的万能工具,采用了客户端-服务器模型,包括三个部分: 1.客户端部分,运行在开发用的电脑上,可以在命令行中运行adb命令来调用该客户端,像ADB插件和DDMS这样的Android工具也可以调用adb客户端. 2.服务端部分,是运行在开发用电脑上的后

Android SQLite (三 ) 全面详解(一)

官网 SQLite是一款轻型的数据库,是关系型数据库(RDBMS)管理系统,它包含在一个相对小的C库中.目前在很多嵌入式产品中使用了它,它占用资源非常 的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持Windows/Linux/Unix/Android/IOS等等主流的操作系统,同 时能够跟很多程序语言相结合,比如 Tcl.C#.PHP.Java等,还有ODBC接口,同样比起Mysql.PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度 比他们都快. Sqli

Sqlite全面学习(一)

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! [工匠若水 http://blog.csdn.net/yanbober] 官网 SQLite是一款轻型的数据库,是关系型数据库(RDBMS)管理系统,它包含在一个相对小的C库中.目前在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持Windows/Linux/Unix/Android/IOS等等主流的操作系统,

浅用sqlite3(一)

最近工作接触到sqlite3了,于是用博客记录下,当然只是浅用哈! 参考资料:http://www.runoob.com/sqlite/sqlite-tutorial.html 概念: SQLite 是一个软件库,实现了自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎.它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置. 就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接.SQLite 直接访问其存储文件. SQLite

SQLite3介绍

一.SQLite数据库简介 SQLite 是一个软件库,实现了自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎.SQLite 是在世界上最广泛部署的 SQL 数据库引擎. DDL - 数据定义语言 命令 描述 CREATE 创建一个新的表,一个表的视图,或者数据库中的其他对象. ALTER 修改数据库中的某个已有的数据库对象,比如一个表. DROP 删除整个表,或者表的视图,或者数据库中的其他对象. DML - 数据操作语言 命令 描述 INSERT 创建一条记录. UPDATE

Sqlite 基本概念及使用概述

SQLite 是一个开源的嵌入式关系型数据库,是一个自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎.SQLite 具有如下特点: 无需单独的服务器进程,是无服务器的 不需要配置,无需复杂的安装或管理步骤 数据库存储在一个单一的跨平台的磁盘文件中 非常小的,轻量级的 自给自足的,不需要任何外部的依赖 事务是完全兼容 ACID,允许从多个进程或线程安全访问 支持 SQL92(SQL2)标准的大多数查询语言的功能 使用 ANSI-C 编写的,并提供了简单易用 API 兼容类 UNIX