列表是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 ]

当执行上面的代码,产生以下结果:

blue

插入索引项目

在列表特定索引插入项目的语法如下。

linsert listname index value1 value2..valuen

例如,在列表特定的索引插入项目如下。

#!/usr/bin/tclsh

set var {orange blue red green}
# 表示在列表中的位置...
set var [linsert $var 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 black white]
puts $var

当执行上面的代码,产生以下结果:

orange blue black white

设置指数项目

用于设置列表项在特定索引下面的语法给出。

lset listname index value

例如设置列表项的索引具体如下。

#!/usr/bin/tclsh

set var {orange blue red green}
lset var 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

TCL列表的更多相关文章

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

    一.介绍 列表则是具有特殊解释的字符串.Tcl 中的列表操作和其它 Tcl 命令一样具有相同的结构.列表可应用在诸如 foreach 这样的以列表为变元的循环命令中,也应于构建 eval 命令的延迟命 ...

  2. sqlite3使用(一)

    最近工作接触到sqlite3了,于是用博客记录下,当然只是浅用哈! 参考资料:http://www.runoob.com/sqlite/sqlite-tutorial.html 概念: SQLite ...

  3. Android菜鸟成长记5-ADB和sqllite

    Android开发环境中,ADB是我们进行Android开发经常要用的调试工具,它的使用当然是我们Android开发者必须要掌握的. ADB概述 Android Debug Bridge,Androi ...

  4. Android-adb 常用命令 和 sqlite

    Android开发环境中,ADB是我们进行Android开发经常要用的调试工具,它的使用当然是我们Android开发者必须要掌握的. ADB概述 Android Debug Bridge,Androi ...

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

    官网 SQLite是一款轻型的数据库,是关系型数据库(RDBMS)管理系统,它包含在一个相对小的C库中.目前在很多嵌入式产品中使用了它,它占用资源非常 的低,在嵌入式设备中,可能只需要几百K的内存就够 ...

  6. sqlite3使用教程1 SQLite 命令

    http://www.runoob.com/sqlite/sqlite-commands.html 本章将向您讲解 SQLite 编程人员所使用的简单却有用的命令.这些命令被称为 SQLite 的点命 ...

  7. 关于SQLite3笔记

    sq .help .quit .exit 创建和连接数据库:在linux中 sqlite3 数据库名 没有就创建 有就连接 .show 显示各种设置的当前值. .echo ON|OFF echo命令 ...

  8. SQLite3命令操作大全

    SQLite3命令操作大全 SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令.本文档提供一个样使用sqlite3的简要说明. 一.ql ...

  9. SQLite 学习笔记

    SQLite 学习笔记. 一.SQLite 安装    访问http://www.sqlite.org/download.html下载对应的文件.    1.在 Windows 上安装 SQLite. ...

随机推荐

  1. 嵌入式Linux应用程序开发环境搭建记录

    2016年2月 参考资料: OK210软件手册(Linux版).pdf Ubuntu下Qt4.7.1编译环境配置说明.pdf 我阅读了以下内容: OK210软件手册(Linux版).pdf 第七章 O ...

  2. POJ 2240 Arbitrage(判正环)

    http://poj.org/problem?id=2240 题意:货币兑换,判断最否是否能获利. 思路:又是货币兑换题,Belloman-ford和floyd算法都可以的. #include< ...

  3. Ubuntu server 禁止显示器休眠

    Linux不让显示器休眠的方法 # setterm -blank # setterm -blank n (n为等待时间)

  4. Qt532_WebKit_SSL问题

    1.打开网页"http://www.baidu.com",它会跳转至"https://www.baidu.com/",使用 SSL了,于是 WebView 出现 ...

  5. eclipse下maven springMVC 整合 mybatis

    参考文档:http://blog.csdn.net/zhshulin/article/details/37956105   1.搭建maven工程,具体参见我另一篇博客:http://www.cnbl ...

  6. javascript中back(-1)和go(-1)的区别

    javascript中back(-1)和go(-1)的区别 一.总结 一句话总结: 数据 history.back(-1):直接返回当前页的上一页,数据全部消息,是个新页面 history.go(-1 ...

  7. 资源管理器总是生成 avi,mpeg的预览图

    感觉非常讨厌. 图片可以直接显示,但是视频的预览图感觉很不舒服. 查了一下 , 用ShellExView 禁用一下 MF XXXX Property Handler 就可以了. 官网最下面可以下载: ...

  8. 雷林鹏分享:Ruby 面向对象

    Ruby 面向对象 Ruby 是纯面向对象的语言,Ruby 中的一切都是以对象的形式出现.Ruby 中的每个值都是一个对象,即使是最原始的东西:字符串.数字,甚至连 true 和 false 都是对象 ...

  9. baseCss/resetCss(转)

    原文链接:https://github.com/hangyangws/baseCss#basecss baseCss 意义 统一各个浏览器差异.统一团队开发起始标准.弥补浏览器的“缺点”.提供频繁使用 ...

  10. 【css】 文本超出2行显示省略号

    首先,要知道css的三条属性. overflow:hidden; //超出的文本隐藏 text-overflow:ellipsis; //溢出用省略号显示 white-space:nowrap; // ...