我在Tcl中有一个列表:
set list1 {0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9}
那么我怎样才能根据列表索引获取元素?例如:
我想获得此列表的第二个元素?或者这个清单的第六个?
答案 0 :(得分:9)
只需使用拆分和循环?
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]
然后删除尾随空格(如果有的话)并将puts打印结果。
编辑:
要获取列表中的 n 元素,请使用lindex
函数:
% puts [lindex $list1 1]
0x2
% puts [lindex $list1 5]
0x6
索引从0开始,因此您必须从列表中删除索引中的1。
答案 1 :(得分:2)
只做
lindex $list 2
你会得到
0x3
答案 2 :(得分:1)
您应该“为此”使用lindex。但是从您的问题中我有一种印象,即您不希望在提取的元素中出现“,”。您不需要“,”来分隔列表。只需空格即可。
survey <- structure(list(q1 = c("I like this", "I like that", "I like this, but not much",
"I like that, but not much", "I like this,I like that", "I like this, but not much,I like that"
)), class = "data.frame", row.names = c(NA, -6L))