回答
你可以lappend
字典中的新變量,並將舊變量的值設置爲新變量,然後unset
舊密鑰。
set somedict [dict create key1 "black dict" key2 "white dict"]
//dict update somedict key1 varKey1 {
// dict lappend somedict someKey1 $varKey1
// unset varKey1
//}
//or
set rename key1
set to someKey1
set somedict [dict replace $somedict $to {[dict get $somedict $rename][dict unset $somedict $rename]}]
set value [dict get $somedict someKey1]
puts $value
有關更多信息,請轉至TCL Dictionary。
如果你正在尋找重命名變量命令,TCL中沒有這樣的事情。
這也是我認爲要做的事,但認爲可能有更有效的方法。 –
沒有更有效的方法;它必須在基礎表中創建一個新的哈希條目。然而,移動數據的價格很便宜;該條目的內容通過引用傳輸。 –
請注意,目前所述的解決方案不起作用。 –
您可以利用字典也是一個列表,這也是一個字符串。
請注意,我通常會告訴你永遠不要混用操作和清單類型(即從不使用字符串上的列表操作)。但就像音樂一樣,在Tcl中,如果你只知道自己在做什麼,那麼每一條規則都會被打破。 (除十二語法規則,這些都是神聖不可侵犯的。)
鑑於本字典:
% set somedict [dict create key1 "black dict" key2 "white dict"]
key1 {black dict} key2 {white dict}
你可以做一個字符串變換:
% set somedict [string map {key1 somekey1} $somedict]
somekey1 {black dict} key2 {white dict}
,你會得到一個新的功能詞典:
% dict get $somedict somekey1
black dict
(該值將是一個字符串值,但它將恢復爲一個dictiona ry值)
這有點危險,但是:string map
會對它找到的每個匹配項進行替換,包括更長的字符串內部。
如果你知道你想要以改變哪個鍵,你可以用一個簡單的列表轉換:
% lset somedict 0 somekey1
somekey1 {black dict} key2 {white dict}
如果你不知道它在哪裏,你可以搜索(它最好是雖然存在,否則lset
試圖改變元素-1):
% lset somedict [lsearch $somedict key1] somekey1
somekey1 {black dict} key2 {white dict}
這是醜陋的,但它的簡單。
- 1. 修改字典值
- 2. 修改Python字典鍵
- 3. 修改C#字典值
- 4. 無法修改字典值
- 5. 修改字典值(列表)
- 6. 修改字典
- 7. 修改字典
- 8. 的Python:修改一個字典,使該鍵的值,和值的鍵
- 9. 由映射字典修改字典的多個鍵
- 10. 指定和修改元組作爲Python的字典鍵值
- 11. 修改字典中的結構值
- 12. 修改作爲字典值的列表
- 13. 修改字典中包含的字典的值
- 14. 修改字典colleciton
- 15. 蟒蛇修改字典中的值到另一個字典
- 16. Python:使用加法修改字典值
- 17. Tcl:字典裏面的字典
- 18. 字典的值更改爲一個字典的關鍵在python
- 19. 修改的嵌套字典
- 20. 蟒蛇字典改變嵌套鍵值
- 21. 擴展python字典並更改鍵值
- 22. 字典改變許多值很多鍵
- 23. TCL:更新字典內「字典與」
- 24. 迭代和修改字典
- 25. 遞歸字典修改
- 26. 遞歸修改字典
- 27. 迭代和修改字典
- 28. 返回字典修改
- 29. 並行化修改字典
- 30. 在一個字典中識別一個關鍵字,並使用它來修改另一個字典的值
你要添加新的記錄到字典? –
不,我只想重命名關鍵字 –