2013-10-02 71 views
3

我在TCL的列表爲:如何從TCL的列表中獲取價值?

set list1 {0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9} 

話,我怎麼能拿基於列表的索引元素?例如:

我想獲得此列表的第二個元素?或這個清單中的第六個?

回答

7

只要使用分割和循環?

foreach n [split $list1 ","] { 
    puts [string trim $n] ;# Trim to remove the extra space after the comma 
} 

[split $list1 ","]返回包含在所述列表中的每個元素0x1 { 0x2} { 0x3} { 0x4} { 0x5} { 0x6} { 0x7} { 0x8} { 0x9}

foreach循環迭代的列表和當前元素分配給$n

[string trim $n]然後刪除尾隨空格(如果有)並放置打印結果。


編輯:

以獲取列表的ñ個元素,使用lindex功能:

% puts [lindex $list1 1] 
0x2 
% puts [lindex $list1 5] 
0x6 

該指數是基於0的,所以你必須刪除1從索引你需要從列表中拉出。

+0

是否有列表中的任何指標,我們可以得到的第二個元素?或者在這種情況下,我們應該使用數組? – user2131316

+0

您對於值對的foreach意味着什麼?和數組或列表的一個值和一個索引? – user2131316

+0

@ user2131316你到底在做什麼?請相應地更新您的問題。這是越來越混亂:( – Jerry

2

只是LINDEX $列表2你會得到0x3