gpt4 book ai didi

tcl - 将键值列表分配给 Tcl 中的数组

转载 作者:行者123 更新时间:2023-12-04 13:41:31 37 4
gpt4 key购买 nike

我有一个列表,它是一个键值对列表。类似下面的内容

key1 value1 key2 value2 key3 value3

我想将其映射到数组或字典。

目前,我的代码是这样的

for {set i 0} {$i < [llength $list]} {incr i} {
if {[expr {fmod($i,2)}] == 0} {
set key [lindex $list $i]
} else {
set v_array(${key}) [lindex $list $i]
}
}

在 perl 中,我知道这可以一次性分配到键值字典中。 Tcl中有这么简单的方法吗?

最佳答案

您可以在一行中创建一个数组(我使用一行来定义列表):

% set list [list key1 value1 key2 value2 key3 value3]
key1 value1 key2 value2 key3 value3
% array set v_array $list

如果你想检查内容,你可以使用 parray (Tcl 8.5 and later):

% parray v_array
v_array(key1) = value1
v_array(key2) = value2
v_array(key3) = value3

可以找到其他数组命令的文档here每个都有例子。


如果您无法避免循环,则使用 foreach会更容易(确保列表中的元素数量为偶数):

foreach {a b} $list {
set v_array($a) $b
}

(这里的foreach是一次取两个$list中的元素,赋值给a和b)

关于tcl - 将键值列表分配给 Tcl 中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42686294/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com