当前位置: 首页 > 知识库问答 >
问题:

如何在TCL中查找数组的行中列数

司徒泰
2023-03-14

对于名为cb_节点的数组,我有不同数量的列。要对这些数据进行后处理,需要准确知道每行中的列数。

数组如下所示。

cb_node(1,1) value
cb_node(1,2) value
...
cb_node(1,256) value

cb_node(2,1) value
....
cb_node(2,56) value

等等...数组中的每一行都有不同数量的列数。value只是个例子,数组中的键是不同的。

TCL中的命令集只有数组cb_node数组大小cb_node,它没有给出每行的行号和列号。

在TCL,我们如何做到这一点?

共有3个答案

裘兴思
2023-03-14

如果您不知道有多少行或列,但您知道没有跳过的行,那么只要信息存在,就可以循环:

#!/usr/bin/env tclsh

array set cb_node {1,1 a 1,2 b 1,3 c 2,1 d 3,1 e 3,2 f}

for {set row 1} {[info exists cb_node($row,1)]} {incr row} {
    for {set col 1} {[info exists cb_node($row,$col)]} {incr col} {
        puts "cb_node($row,$col) = $cb_node($row,$col)"
    }
}

这将打印出来

cb_node(1,1) = a
cb_node(1,2) = b
cb_node(1,3) = c
cb_node(2,1) = d
cb_node(3,1) = e
cb_node(3,2) = f
宗安翔
2023-03-14
set count {}
foreach key [array names cb_node] {
    lassign [split $key ,] row col
    dict incr count $row
}
dict for {row n} $count {
    puts "row $row has $n cols"
}
row 2 has 56 cols
row 1 has 256 cols
简俊楚
2023-03-14

如果键中的1表示行号,那么您可能可以使用如下内容:

set rowNum 1
set noOfColumns [llength [array names cb_node $rowNum,*]]
 类似资料:
  • 问题内容: 我只是在练习一些MIT Java作业。但是,我不确定如何找到第二大数字。http://ocw.csail.mit.edu/f/13 问题答案: 仅对数组进行排序以查找订单统计信息太浪费了。您可以通过遵循与现有算法相似的算法找到第二大元素,并使用一个代表第二大数字的附加变量。 当前,下一个元素可以大于最大值或等于/小于最大值,因此单个元素就足够了: 考虑两个变量,下一个元素可能是 大于最

  • 问题内容: 存在一个包含许多对象的数组。通过属性在此数组中查找一个或多个对象所必需。 输入obj: 输出结果:(以值4搜索“开始”) 问题答案: _findItemByValue(Obj,“开始”,4); 与除IE6,IE7,IE8以外的所有版本兼容,但存在polyfill。

  • 如果我从问题中选择“q1”,我如何从答案中选择第一个数组? 这是我现在的代码:

  • 所以我正在用NestJs和mongodb进行一个项目。早些时候,我们使用express和mongoose,为了在数组列中查找结果,我们使用了如下方法: 现在,当我们使用TypeORM迁移到新的Nest后端时,我们使用的是: 但这不起作用。奇怪的是,除此之外,我们在mongoose中使用的所有查询都能正常工作。我试着用NestJS处理mongoose,这确实有效,所以函数参数或任何东西都没有问题。

  • 我需要使用用户在 Java 扫描程序中输入的内容的输入,然后确定该特定输入是否被接受为检查清单数组中是否有足够的输入的一部分。此外,int 清单数组的特定值必须与字符串项数组匹配。例如,对于商品“螺丝刀”,数量为 500。 这是一个用于家庭作业的程序,我被困在一个步骤中,我必须找出用户想要购买的商品数量。如果输入量大于int[]库存量,那么我必须让用户知道并退出程序。但是如果我有足够的库存,那么我

  • 问题内容: 我想获取与行匹配的二维Numpy数组的索引。例如,我的数组是这样的: 我想获取与行[0,1]相匹配的索引,该行是索引3和15。当我执行类似的操作时,… 我想要索引数组([3,15])。 问题答案: 您需要使用函数来获取索引: 或者,如文档所述: 如果仅给出条件,则返回 您可以直接调用返回的数组: 分解: 并在该数组上调用方法(使用)可为您提供两个均为True的位置: 并获取哪些索引是: