日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Tcl学习之--列表|字典

發(fā)布時(shí)間:2023/11/27 生活经验 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tcl学习之--列表|字典 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
列表|字典

Tcl使用列表來處理各種集合,比方一個(gè)目錄中的全部文件,以及一個(gè)組件的全部選項(xiàng)。最簡單的列表就是包括由隨意個(gè)空格、制表符、換行符、分隔的隨意多個(gè)元素的字符串。比方:

JerryAlice Mandy David

l? lindex命令: -->?獲取元素

至少須要兩個(gè)參數(shù),一個(gè)列表和一個(gè)索引值。返回取得的元素


假設(shè)列表中包括列表的話,訪問子列表中的元素就要多個(gè)參數(shù)


l? llength命令: -->?獲取長度


列表命令中能夠把一個(gè)含有空白符的元素括在括號里。還能夠使用反斜線來給出特殊字符,如括號等。


l? list命令: -->?增加列表

Tcl提供了三個(gè)把字符串聯(lián)合為列表的命令:list、concat 和lrepeat。每一個(gè)命令能夠接受無數(shù)個(gè)參數(shù),返回一個(gè)列表,list總是會產(chǎn)生一個(gè)適當(dāng)?shù)牧斜斫Y(jié)構(gòu)。不管參數(shù)結(jié)果怎樣.


l? concat命令: -->?合并列表

concat須要它的參數(shù)有適當(dāng)?shù)牧斜斫Y(jié)構(gòu),假設(shè)某個(gè)參數(shù)不是形式完整的列表,那么這個(gè)命令給出的結(jié)果也可能不具備完整的列表形式。

concat做的工作就是:把參數(shù)字符串的開頭和結(jié)尾的空白裁掉,然后把各個(gè)元素以空格隔開。串接起來形成一個(gè)大的列表。

Concat完畢的任務(wù)能夠用[]來完畢。看以下樣例:


l? lrepeat命令: -->?反復(fù)元素來創(chuàng)建列表


l? lrange命令: -->?取范圍


Note:既然是范圍,就必須提供開始和結(jié)尾兩個(gè)參數(shù)

l? linsert命令:-->插入元素

linsert須要至少三個(gè)參數(shù):

第一個(gè)參數(shù): 是一個(gè)列表

第二個(gè)參數(shù): 第一個(gè)元素索引值

第三個(gè)參數(shù): 要插入的元素


l? lreplace命令:-->?刪除元素

須要至少三個(gè)元素。

第一個(gè)參數(shù): 是一個(gè)列表

第二個(gè)參數(shù): 要?jiǎng)h部分元素的開頭

第三個(gè)參數(shù): 要?jiǎng)h部分元素的結(jié)尾

假設(shè)僅僅給定了三個(gè)元素。則是刪除指定部位:


假設(shè)給定了很多其它元素。則是代替:


lreplace經(jīng)常使用操作: 更新列表中某個(gè)元素


NOTE:lreplace并非直接改動變量的值,須要運(yùn)行一次命令替換來運(yùn)行它。然后把返回的結(jié)果賦給有列表的變量作為它的新值,創(chuàng)建新列表。

l??lset命令: -->更新元素


高速簡練地改動元素的值。

l? lappend命令:?-->加入元素

高效的加入元素的方法。獲取存放列表的變量名作為參數(shù),以及隨意多個(gè)其它參數(shù),返回該列表變量的新值。

lappend和append差別及聯(lián)系:

差別: 前者是基于列表的加入。后者是基于字符串的加入。前者能夠強(qiáng)制生成適當(dāng)?shù)牧斜斫Y(jié)構(gòu)。

聯(lián)系:1.由于都是涉及到尾部加入,兩者效率都挺高。與append相比,lappend效率更高。2. 原來的變量都會改變。3. 都是以原來的變量名為加入對象。

能夠用concat 和 list命令達(dá)到

l? lassign命令:-->取得元素

該命令是將列表中的值分發(fā)到一個(gè)或多個(gè)變量中.

1) 第一個(gè)參數(shù)為列表:

2) 第二個(gè)及N個(gè)參數(shù)為變量名.

a)? 假設(shè)變量名比列表中的元素個(gè)數(shù)多。多余的變量會被設(shè)置為空字符.

b)? 假設(shè)列表中的元素比變量的個(gè)數(shù)多。則會返回一個(gè)未分發(fā)的元素組成組成的列表


該命令兩個(gè)比較實(shí)用的操作:

1. 模仿某些語言的shift,在Python中是pop, push

set argv [lassign $argvnextArg]

2. 利用foreach命令來將列表中的元素分發(fā)給獨(dú)立變量.


l? lsearch命令:-->?查找元素

該命令從列表中查找指定的元素,它獲得兩個(gè)參數(shù)。

第一個(gè)參數(shù): 列表

第二個(gè)參數(shù): 模式

搜索到返回指定的索引值,非負(fù)數(shù)。

未搜索到返回:-1

經(jīng)常使用參數(shù)前標(biāo)志:

-exec:進(jìn)行嚴(yán)格匹配

-glob:指定匹配依照stringmatch命令的規(guī)則進(jìn)行

-regexp:進(jìn)行正則表達(dá)式匹配

-inline:指定返回元素。而非元素的索引

-not:對匹配的結(jié)果取反

-all:將全部匹配的元素組成一個(gè)列表返回


l? lsort命令:-->排序

排序命令,能夠在列表前加入選項(xiàng)來控制排序

-decreasing:最大數(shù)排在前面

-integer:列表中的元素被視為整數(shù)進(jìn)行排序

-real:列表中的元素被視為實(shí)數(shù)來進(jìn)行排序

-unique:返回的結(jié)果中。反復(fù)的僅僅出現(xiàn)一次

-index:? 同意指定子列表中元素的索引

-dictionary:指定不區(qū)分大寫和小寫的排序,而且元素中嵌入的數(shù)字作為非負(fù)整數(shù)處理

另外: 假設(shè)列表中包括了不能進(jìn)行字詞排序或數(shù)學(xué)排序的數(shù)據(jù)。能夠使用-command命令選項(xiàng)定義自己的排序函數(shù).

l? split和join命令:-->分隔、合并

split命令:將字符串分成幾部分。然后能夠?qū)Ω鱾€(gè)部分獨(dú)立進(jìn)行處理并創(chuàng)建一個(gè)列表。它須要兩個(gè)參數(shù):

第一個(gè)參數(shù): 待分隔的字符串

第二個(gè)參數(shù): 一個(gè)多個(gè)分隔字符

多個(gè)字符分隔:

假設(shè)指定分隔字符是空字符串。會將字符串接成一個(gè)字符串,元素之間用指定的切割符隔開.

join命令 :是split命令的逆操作。把列表連成一個(gè)字符串。元素之間用指定的分隔符隔開。

?

l? 字典結(jié)構(gòu)與dict get命令:

字典是依照鍵、值來創(chuàng)建及維護(hù)的??瓷先ハ裨氐牧斜?#xff0c;實(shí)則不然。Hash的方式存儲,按鍵查找值,其代碼復(fù)雜度O(1),不同于數(shù)組,字典能夠可靠的按一定順序來遍歷?;蜃鳛橐粋€(gè)值傳給其它命令(NOTE:非全局?jǐn)?shù)組須要用upvar或明白進(jìn)行打包和解包).

類似于一個(gè)偶數(shù)的列表,1.3.5..為鍵,2.4.6..為值

Firstname JohnSecondname SmithTitle Mr

嵌套字典的定義及遍歷


l??dict create命令: -->創(chuàng)建字典


l? dict remove命令: -->?刪除鍵值


l? dict merge命令: -->?合并字典

l? dict set和dict unset命令: -->更改字典

l? dict size命令: -->元素個(gè)數(shù)

l? dict exists命令: -->?存在推斷

l? dict keys命令: -->?獲取keyword列表(按順序)

l? dict values命令: -->獲取關(guān)聯(lián)子列表(按順序)

?

例一: 整齊打印一個(gè)字典中的內(nèi)容;

輸出結(jié)果:


轉(zhuǎn)載于:https://www.cnblogs.com/lytwajue/p/6888084.html

總結(jié)

以上是生活随笔為你收集整理的Tcl学习之--列表|字典的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。