TCL脚本中的数组处理问题

TCL脚本中的数组处理问题,tcl,Tcl,我有一个清单如下所述 echo $mem_ip_list2 sdmmc dpram eth ram1 usbhs sram cmcc tag cmcc data tram mem flexram 8k32 flexram 4k32 这是一对两个字符串 key value sdmmc dpram eth ram1 usbhs sram cmcc tag cmcc data tram mem flexram 8k32 flexram 4k32 我需要创建一个数组并打印脚本中显

我有一个清单如下所述

echo $mem_ip_list2 

sdmmc dpram eth ram1 usbhs sram cmcc tag cmcc data tram mem flexram 8k32 flexram 4k32
这是一对两个字符串

key   value 
sdmmc dpram
eth   ram1
usbhs sram 
cmcc tag
cmcc data
tram mem 
flexram 8k32
flexram 4k32 
我需要创建一个数组并打印脚本中显示的值

我写的剧本是


array set array1 $mem_ip_list2

SETUP> foreach { q z } [array get array1 ] {
puts " ip : $q , mem : $z "
}
此脚本的输出


ip : tram , mem : mem
 ip : sdmmc , mem : dpram
 ip : usbhs , mem : sram
 ip : eth , mem : ram1
 ip : cmcc , mem : data
 ip : flexram , mem : 4k32

但是缺少两个键值对,它们是重复的键


flexram 8k32
cmcc tag 


你能帮我提供一些关于这方面的见解吗

只是不要将其存储在数组中。将原始列表用作键:值对的列表:

set mem_ip_list2 {sdmmc dpram eth ram1 usbhs sram cmcc tag cmcc data tram mem flexram 8k32 flexram 4k32}
foreach {key value} $mem_ip_list2 {puts "ip : $key , mem : $value"}

根据定义,钥匙是独一无二的谢谢Jerry!但是,我们是否有一些机制来实现阵列的预期结果,不,这不是阵列的预期目的。感谢Glenn,我们现在可以继续了。
ip : sdmmc , mem : dpram
ip : eth , mem : ram1
ip : usbhs , mem : sram
ip : cmcc , mem : tag
ip : cmcc , mem : data
ip : tram , mem : mem
ip : flexram , mem : 8k32
ip : flexram , mem : 4k32