1

作为 Python 新手,我一直在尝试编写代码来构建多维字典/数组。

输入数据由 csv 字段组成,第一行由“<”字符表示。我需要键入“目标”和“产品”字段:

0:rev,1:目标名称,2:产品名称,3:svn rev,4:时间/日期 <1,ram,KATMAI,7416,1373386517.0,2013-07-09 15:15:17 -0700>

0:区域名称,1:起始地址,2:结束地址,3:等等。 LOAD_REGION2,0x0000004C,0x000003B4,92.6,7.4 LOAD_REGION2,0x0002152C,0x0001E6D4,47.7,52.3 LOAD_REGION2,0x0002EECC,0x00013034,28.8,71.2 <1,rom,KATMAI,7416,1373386517.0,2013-07-09 15:15:17 -0700 > LOAD_REGION2,0x0000004C,0x000003B4,92.6,7.4 LOAD_REGION2,0x00005CEC,0x00039F14,90.9,9.1 LOAD_REGION2,0x00003A78,0x0003E488,94.5,5.5 <1,ram,TOASTER,7416,1373386517.0,2013-07-09 15:15:17 - 0700> LOAD_REGION0,0x000000B8,0x00000348,82.0,18.0 LOAD_REGION0,0x0000AD10,0x00014EF0,65.9,34.1 LOAD_REGION1,0x00005244,0x00008CBC,63.1,36.9 LOAD_REGION3,0x00002A50,0x000FD5B0,99.0,1.0 LOAD_REGION3,0x000135B4,0x00000E4C,4.4,95.6 LOAD_REGION3,0x00000000 ,0x07B00000,100.0,0.0 <1,rom,TOASTER,7416,1373386517.0,2013-07-09 15:15:17 -0700> LOAD_REGION0,0x000000B8,0x00000348,82.0,18.0 LOAD_REGION0,0x00008710,0x000174F0,73.4,26.6 LOAD_REGION1, 0x00003B6C,0x0000A394,73。4,26.6 LOAD_REGION3,0x00000208,0x000FFDF8,100.0,0.0 LOAD_REGION3,0x00000000,0x00014400,100.0,0.0 LOAD_REGION3,0x00000000,0x07B00000,100.0,0.0

我想读取每条记录并使用目标字段的主要索引和产品字段的次要索引构建一个数组。[目标名称][产品名称]["1"] = 7416,1373386517.0,2013-07-09 15:15:17 -0700 [目标名称][产品名称]["2"][区域名称] = 0x0000004C, 0x000003B4,92.6,7.4

建立字典的正确方法是什么?或者我应该使用多维列表数组?

4

1 回答 1

1

您可以通过让字典的值成为另一个字典来构建多维字典。例如,您可以有一个可以像这样访问的字典:

value = d["target K"]["product B"][1]

作为:

d = {"target J":{"product A":{0:"example01"}, "product B":{1:"example02"}}, 
     "target K":{"product B":{1:"example03"}}}

另外,顺便说一句,我将“1”等从引号中取出,因为整数将用作字典键。

字典的主要限制是键必须是可散列的,特别是不能是字典,但这里的键是字符串或整数,所以它可以工作。

于 2013-07-31T02:00:27.860 回答