簡體   English   中英

如何復制和操作字典?

[英]How to copy and manipulate dictionary?

我正在嘗試為我正在處理的幾個紋理操作字典。 我可以使用我制作的腳本生成它。

{
   "texture": {
      "asset": "monster", 
      "element": "damaged", 
      "job": "test", 
      "maps": {
         "files": [
            {
               "file": "monster/damaged/hi/bump/bump.1001.tif", 
               "md5sum": "5ff5779466612a3ec447c4d0ddc99e48"
            }, 
            {
               "file": "monster/damaged/hi/matte/matteSleeve.1002.tif", 
               "md5sum": "f383ceb943671d1bf6ac8dcfbe640fa1"
            }
         ], 
         "version": "1"
      }, 
      "resolution": "hi", 
      "when": "11:20PM"
   }
}

我接下來要做的是復制filesversion並創建它們的版本 2。

{
   "texture": {
      "asset": "monster", 
      "element": "damaged", 
      "job": "test", 
      "maps": [
          {
             "files": [
                {
                   "file": "monster/damaged/hi/bump/bump.1001.tif", 
                   "md5sum": "5ff5779466612a3ec447c4d0ddc99e48"
                }, 
                {
                   "file": "monster/damaged/hi/matte/matteSleeve.1002.tif", 
                   "md5sum": "f383ceb943671d1bf6ac8dcfbe640fa1"
                }
             ], 
             "version": "1"
          },
          {
             "files": [
                {
                   "file": "monster/damaged/hi/bump/bump.1001.tif", 
                   "md5sum": "5ff5779466612a3ec447c4d0ddc99e48"
                }, 
                {
                   "file": "monster/damaged/hi/matte/matteSleeve.1002.tif", 
                   "md5sum": "sfh4eb94367145fd6ac8dcfbe640fa1"
                }
             ], 
             "version": "2"
          }
      ],
      "resolution": "hi", 
      "when": "11:20PM"
   }
}

如何使用 Python 復制或復制它? 如果您可以為此提供一些文檔,那也很棒。

謝謝

嘗試使用deepcopy

import copy
dict['texture']['maps'].append(copy.deepcopy(dict['texture']['maps'][0]))

通過使用深拷貝,您可以避免新字典仍然保留對舊字典的引用的問題。

您可以使用 :

d1 = {"x": 1}
d2 = d1.copy()
d1["x"] = 2
print("d1 :", d1)
print("d2 :", d2)

輸出 :

d1 : {'x': 2}
d2 : {'x': 1}

更多信息在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM