将TCL中的列表拆分为两个大小相同的列表

时间:2013-01-24 07:58:30

标签: list loops tcl

除了

之外还有更好的方法吗?
  1. 查找列表的长度([llength]
  2. 向Midway [llength]/2
  3. 运行一个计数器
  4. 然后弹出所有元素[lindex $index]lindex/2
  5. 然后在步骤3中使用原始列表
  6. 与列表相交

    如果有一个较少涉及的方法来弹出list1中的一个元素和列表2中的下一个元素等,那将是非常好的。

2 个答案:

答案 0 :(得分:3)

set len [expr {[llength $src] / 2}]
set left [lrange $src 0 [expr {$len - 1}]]
set right [lrange $src $len end]

您也可以先检查全长是否大于或等于2。

答案 1 :(得分:0)

你可以使用foreach循环。

set pairedlist [list "FirstName" "Tony" "LastName" "Bennett"]

set keys [list]
set values [list]

foreach {key value} $pairedlist {
  puts "$key: $value"
  lappend keys $key
  lappend values $value
}

puts $keys
puts $values