List 要在tcl中列出的集合

List 要在tcl中列出的集合,list,collections,tcl,List,Collections,Tcl,您好,我想知道如何在tcl中将集合转换为列表。我得到的输出是集合的形式,但我想将其更改为列表 通常,当从某些使用TCL的工具(例如synopsys的Design compiler)转储/查询数据时,我们使用集合。这些集合看起来像列表,但对于普通的列表命令不可访问。要访问它们,您需要使用“foreach_in_collection”命令,需要使用get_object_name(或等效命令),并且需要构建get_object_name输出的列表(lappend)。在此列表中,您可以使用所有TCL列表

您好,我想知道如何在tcl中将集合转换为列表。我得到的输出是集合的形式,但我想将其更改为列表

通常,当从某些使用TCL的工具(例如synopsys的Design compiler)转储/查询数据时,我们使用集合。这些集合看起来像列表,但对于普通的列表命令不可访问。要访问它们,您需要使用“foreach_in_collection”命令,需要使用get_object_name(或等效命令),并且需要构建get_object_name输出的列表(lappend)。在此列表中,您可以使用所有TCL列表操作

foreach_in_collection和get_object_name是特定于工具的命令,在TCL中找不到,它们只能通过工具接口运行


希望这能有所帮助。

假设您正在使用某些synopsys工具:

  set MyList [get_object_name $MyCollection]

上面应该会将您的集合转换为列表。

用户可能在谈论Synopsys Tcl“集合”——Synopsys等EDA供应商提供的一个扩展,用于支持其Tcl API中的对象列表

我来晚了,但这个简单的程序是你大部分时间想要的。请注意,由于将集合映射到对象“名称”列表,因此此映射会丢失信息:

proc col2list { col } {
   set list ""
   foreach_in_collection c $col { lappend list [get_object_name $c] }
   return $list
}

我不知道你在Tcl上下文中所说的“收集”是什么意思。请详细说明。也许,你可以展示你的输入(集合)是什么样子,以及你想要的输出(列表)是什么样子。也许他指的是字典或(TclX)键控列表?我想他指的是数组,但除非他告诉我们,否则我们无法回答这个问题。