回答
你可以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. 修改字典colleciton
- 8. 字典改變許多值很多鍵
- 9. 蟒蛇字典改變嵌套鍵值
- 10. 擴展python字典並更改鍵值
- 11. 迭代和修改字典
- 12. 迭代和修改字典
- 13. 返回字典修改
- 14. 並行化修改字典
- 15. 遞歸修改字典
- 16. 在一個字典中識別一個關鍵字,並使用它來修改另一個字典的值
- 17. python的字典鍵/值
- 18. 得到來自TCL字典
- 19. 字典序列化修改鍵的一部分爲小寫
- 20. 修剪字典的鍵值擴展的異常
- 21. 的Python:如何修改值嵌套字典和擁有整個字典返回
- 22. 枚舉字典組成的數組時,我無法修改字典值
- 23. 如何修改鍵值
- 24. 修改註冊表鍵值
- 25. array_walk_recursive - 修改鍵和值
- 26. 按鍵修改數值
- 27. 導出鍵和字典的值作爲變量名和值
- 28. 使用python檢索具有預先修改的父鍵的字典鍵
- 29. Python:如何在for循環中交替鍵來修改字典值?
- 30. 更換與字典的字典B鍵值值
你要添加新的記錄到字典? –
不,我只想重命名關鍵字 –