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
相關文章
- Redis系列(八):資料結構List雙向連結串列中阻塞版本之BLPOP、BRPOP和LINDEX、LINSERT、LRANGE命令詳解Redis資料結構Index
- RMAN命令LIST操作總結
- TCL集團改名為TCL科技(蘋果企業開發者賬號)蘋果
- Linux系統中的list命令有何作用?Linux
- 智慧時代的TCL之舞
- TCL實業、TCL科技加入聯合國全球契約組織,攜手共建更好世界
- TCL電子財報:2022年TCL 電子營收為713.51億港元 同比下跌4.7%營收
- 【學習】SQL基礎-011-TCLSQL
- TCL電子財報:2019年TCL電視機銷售量3200萬臺 居全球第二
- [Redis 基礎知識] Redis List 型別常用命令Redis型別
- You need tcl 8.5 or newer in order to run the Redis testRedis
- Python List 列表list()方法Python
- TCL空調售後服務維修電話/官方統一24小時TCL客服熱線號碼
- Python List 列表list()方法分享Python
- 02-Tcl輸出、賦值與替換賦值
- list
- Sting 轉List<String>轉List<Integer>
- 使用 Tcl 實現簡單的文字識別程式
- int[] 、 list<int> 、 list<int>[] 的區別
- redis--概述,下載&安裝,資料結構,命令操作--string&hash,list,set&sorted set,通用命令Redis資料結構
- TCL科技財報:預計2023年度TCL科技淨利潤將達到21-25億元 同比暴增704%-857%
- List 按照指定大小分割為多個list的幾種方式,list分片
- 省市list
- Reorder List
- python listPython
- redis listRedis
- Int -> List | List -> Int _ CodingPark程式設計公園程式設計
- TDengine在TCL空調能源管理平臺的實踐
- 口胡list
- timer_list
- java集合-ListJava
- 1074 reverse list
- python列表(List)Python
- my_list
- `list ()` 新姿勢
- SCSS list 列表CSS
- Python list(列表)Python
- Python 列表(List)Python
- sticky list item