Tcl -- list用法

list:列表-用来表示集合

TCL中list是由一组元素组成的有序集合,list可以嵌套定义,list的每个元素可以是任意字符串,也可以是list。

语法:list ?value value …?

这个命令生成一个list,元素就是所有的value。

concat:将多个list合成一个list

语法:concat list ?list list …?

concat命令把多个list合成一个list,每个list变成新list的一个元素。

example1:

上面的例子看不出list和concat命令的区别。它们的区别主要是:

1)list把后面的参数都当作列表的一个元素看待,形成的列表是所有的元素组成的。List可以嵌套,即一个列表元素可以是一个列表。

2)concat把后面的参数当作一个列表来看待,形成的列表为所有列表中的元素组成。

如果参数列表中有多个列表元素,就可以看出区别了。

example2:

concat是去掉了一层列表结构后,再组合所有的元素。

 

lrepeat: 使用重复的元素构建列表

语法:lrepeat number element1 ?element2 element3 …?

number: 重复的次数   element:重复的元素

对element元素进行了number次的list操作

example3:

 

llength: 返回一个列表的元素个数

语法:llength list

 

lindex:返回索引值对应的列表元素

语法:lindex list ?index…?

根据索引值,找出列表中索引为index的元素,如果没有index参数就返回整个列表,如果index对应的元素还是一个列表就返回对应子列表中的元素。

元素的下标从0开始算起。

1)下标是5,不存在下标是5的元素,无返回。

2)缺省index,返回整个列表。

3)下标是3,对应的元素是book。

4)下表是1,对应子列表{is a},输出子列表的所有元素。

5)返回列表中索引为1的列表中下标为1的元素。

 

lrange: 返回指定区间的列表元素

语法:lrange list first last

返回列表list一个区间的元素,区间由first和last指定。

 

 lassign: 将列表元素赋值给变量

语法:lassign list varname ?varname?


 

lappend: 在原列表后面添加元素

语法:lappend varname ?value value value?

lappend命令接收一个变量名(列表名),将元素添加到原列表后面,原列表会被修改

可以看到,列表mylist已经被修改了。在tcl中如果命令传入的是变量名一般结果都会修改变量的值,如果传入的是值不会修改变量本身。

 

lreplace: 列表元素替换

语法:lreplace list first last ?element element …?

将索引为first到last的元素替换为后面的元素。

 

lset: 列表元素设置

语法:lset varname ?index…? newvalue

lset和lappend一样接收一个变量名作为参数,也会修改变量的值,将列表中的指定索引元素修改为指定的新值,如果不指定索引项就把整个列表换成新值

1)将mylist列表中的索引3设置为bad。

2)注意有空格时要加””或者{ }

3)缺省索引时,整个列表被改变。

 

linsert:在指定索引值的列表中插入新值

语法:linsert list index element ?element element …?

这个命令可以在列表的index所表示的索引位插入元素,产生一个新的列表。

 

lsort: 对列表内的元素按照一定的规则进行排序

语法:lsort ?options? list

1)按照ASCII码的顺序排序,是默认状态。

2)按照字典顺序排序。

3)按照浮点数排序,要求列表里面的元素都能够正确的转化为浮点数。

4)按照整数排序,要求列表里面的元素都能够正确转化为整数。

1)-increasing 按照升序排列

2)-decreasing 按照降序排列

3)-indices 返回排序后的元素在原列表中的索引

4)-nocase 忽略大小写

 

lreverse:反向列表

语法:lreverse list

返回一个列表,新列表为原列表的反序形式。



  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值