如何在tcl列表中添加一个庞大的元素列表



我在设计工具中使用了一些tcl代码来获得单个列表中的标准单元格列表。Tcl具有处理从任何列表中读取的大量元素的限制。如何将这些标准单元格列表拆分为单个数据结构以供工具读取?

如果你有一个大列表,你必须将其拆分成小块进行处理,并且不想用foreach一个接一个地完成所有部分,你可以这样做:

set big_list {lots and lots and lots...}
set index 0
set stride 10
while true {
set chunk [lrange $big_list $index [expr {$index + $stride - 1}]]
# Nothing left; got to the end
if {![llength $chunk]} break
incr index $stride
process_chunk $chunk
}

调整步幅大小,以适应你的进食量。(从理论上讲,如果涉及到一些复杂的限制,你可以对步幅进行自动调整。实际上,只需手动选择一些有效且不太低效的算法;自动调整算法总是要复杂得多。(

最新更新