TCL: LIST命令-lsearch, lsort, lrange
命令格式:
lsearch list pattern
lsort list
lrange list first last
例項:
set list [list {Washington 1789} {Adams 1797} {Jefferson 1801} \
{Madison 1809} {Monroe 1817} {Adams 1825} ]
set x [lsearch $list Washington*]
set y [lsearch $list Madison*]
incr x
incr y -1 ;# Set range to be not-inclusive
set subsetlist [lrange $list $x $y]
puts "The following presidents served between Washington and Madison"
foreach item $subsetlist {
puts "Starting in [lindex $item 1]: President [lindex $item 0] "
}
set x [lsearch $list Madison*]
set srtlist [lsort $list]
set y [lsearch $srtlist Madison*]
puts "\n$x Presidents came before Madison chronologically"
puts "$y Presidents came before Madison alphabetically"
執行結果:
The following presidents served between Washington and Madison
Starting in 1797: President Adams
Starting in 1801: President Jefferson
3 Presidents came before Madison chronologically
3 Presidents came before Madison alphabetically
附上常見的列表命令:
1 list命令
語法: list ? value value...?
這個命令生成一個list,list的元素就是所有的value。例:
% list 1 2 {3 4}
1 2 {3 4}
concat命令:
語法:concat list ?list...?
這個命令把多個list合成一個list,每個list變成新list的一個元素。
3 lindex命令
語法:lindex list index
返回list的第index個(0-based)元素。例:
% lindex {1 2 {3 4}} 2
3 4
4 llength命令
語法:llength list
返回list的元素個數。例
% llength {1 2 {3 4}}
3
5 linsert命令
語法:linsert list index value ?value...?
返回一個新串,新串是把所有的value引數值插入list的第index個(0-based)元素之前得到。例:
% linsert {1 2 {3 4}} 1 7 8 {9 10}
1 7 8 {9 10} 2 {3 4}
6 lreplace命令:
語法:lreplace list first last ?value value ...?
返回一個新串,新串是把list的第firs (0-based)t到第last 個(0-based)元素用所有的value引數替換得到的。如果沒有value引數,就表示刪除第first到第last個元素。例:
% lreplace {1 7 8 {9 10} 2 {3 4}} 3 3
1 7 8 2 {3 4}
% lreplace {1 7 8 2 {3 4}} 4 4 4 5 6
1 7 8 2 4 5 6
7 lrange 命令:
語法:lrange list first last
返回list的第first (0-based)到第last (0-based)元素組成的串,如果last的值是end。就是從第first個直到串的最後。
例:
% lrange {1 7 8 2 4 5 6} 3 end
2 4 5 6
8 lappend命令:
語法:lappend varname value ?value...?
把每個value的值作為一個元素附加到變數varname後面,並返回變數的新值,如果varname不存在,就生成這個變數。例:
% lappend a 1 2 3
1 2 3
% set a
1 2 3
9 lsearch 命令:
語法:lsearch ?-exact? ?-glob? ?-regexp? list pattern
返回list中第一個匹配模式pattern的元素的索引,如果找不到匹配就返回-1。-exact、-glob、 -regexp是三種模式匹配的技術。-exact表示精確匹配;-glob的匹配方式和string match命令的匹配方式相同,將在後面第八節介紹string命令時介紹;-regexp表示正規表示式匹配,將在第八節介紹regexp命令時介紹。預設時使用-glob匹配。例:
% set a { how are you }
how are you
% lsearch $a y*
2
% lsearch $a y?
-1
10 lsort命令:
語法:lsort ?options? list
這個命令返回把list排序後的串。options可以是如下值:
-ascii 按ASCII字元的順序排序比較.這是預設情況。
-dictionary 按字典排序,與-ascii不同的地方是:
(1)不考慮大小寫
(2)如果元素中有數字的話,數字被當作整數來排序.
因此:bigBoy排在bigbang和bigboy之間, x10y 排在x9y和x11y之間.
-integer 把list的元素轉換成整數,按整數排序.
-real 把list的元素轉換成浮點數,按浮點數排序.
-increasing 升序(按ASCII字元比較)
-decreasing 降序(按ASCII字元比較)
-command command TCL自動利用command 命令把每兩個元素一一比較,然後給出排序結果。
11 split命令:
語法:split string ?splitChars?
把字串string按分隔符splitChars分成一個個單詞,返回由這些單片語成的串。如果splitChars
是一個空字元{},string被按字元分開。如果splitChars沒有給出,以空格為分隔符。例:
% split "how.are.you" .
how are you
% split "how are you"
how are you
% split "how are you" {}
h o w { } a r e { } y o u
12 join命令
語法:join list ?joinString?
join命令是命令的逆。這個命令把list的所有元素合併到一個字串中,中間以joinString分開。預設的joinString是空格。例:
% join {h o w { } a r e { } y o u} {}
how are you
% join {how are you} .
how.are.you
相關文章
- tcl列表操作lsearch
- TCL命令
- TCL - info命令
- TCL學習之info命令
- Redis系列(八):資料結構List雙向連結串列中阻塞版本之BLPOP、BRPOP和LINDEX、LINSERT、LRANGE命令詳解Redis資料結構Index
- TCL指令碼讀取命令列引數指令碼命令列
- redis命令之-listRedis
- 【RMAN】LIST命令演示
- Tcl/Tk 命令與C/C++的整合研究C++
- RMAN命令LIST操作總結
- Openstack的的nova list命令
- hbase中list命令報錯
- TCL 750評測 TCL 750值得買嗎?
- 用TCL(工具命令語言)管理Tornado (for VxWorks) 可啟動工程
- RMAN的list和report命令詳解
- Oracle RMAN 的 show,list,crosscheck,delete命令整理OracleROSdelete
- Manipulating Files With Tcl
- TCL集團改名為TCL科技(蘋果企業開發者賬號)蘋果
- 常用php操作redis命令整理(三)LIST型別PHPRedis型別
- TCL手機TCL 750正式釋出 售價1993元
- 智慧時代的TCL之舞
- Tcl語法簡介
- Linux系統中的list命令有何作用?Linux
- TCL檔案查詢拆分
- TCL實業、TCL科技加入聯合國全球契約組織,攜手共建更好世界
- Openstack的keystone的user-role-list命令的使用
- Oracle Rman 命令詳解(List report backup configure)Oracle
- TCL: 變數和過程variable變數
- C# List 用法list<>C#
- RMAN命令configure,report,list,crosscheck,delete的使用方法ROSdelete
- [20150902]rman的list archivelog命令.txtHive
- Python List 列表list()方法Python
- tcl/tk詳解——glob使用例解
- c++/tcl程式設計總結C++程式設計
- 使用Tcl操作Excel檔案的方法Excel
- Oracle DDL,DML,DCL,TCL 基礎概念Oracle
- tcl/tk參考——控制結構catch
- tcl/tk參考——控制結構errorError