在python中创建空列表

在python中创建空列表,python,list,dictionary,Python,List,Dictionary,我有一本这样的字典: data = { 'Sim_1':{ 'sig1':[ 1, 2, 3 ], 'sig2':[ 4, 5, 6 ] }, 'Sim_2':{ 'sig3':[ 7, 8, 9 ], 'sig4':[

我有一本这样的字典:

data = {
   'Sim_1':{
      'sig1':[
         1,
         2,
         3
      ],
      'sig2':[
         4,
         5,
         6
      ]
   },
   'Sim_2':{
      'sig3':[
         7,
         8,
         9
      ],
      'sig4':[
         10,
         11,
         12
      ]
   },
   'Com_1':{
      'sig5':[
         13,
         14,
         15
      ],
      'sig6':[
         16,
         17,
         18
      ]
   },
   'Com_2':{
      'sig7':[
         19,
         20,
         21
      ],
      'sig8':[
         128,
         23,
         24
      ]
   }
}
x=[[],[],[],[],[],[],[],[]]
我想创建如下列表变量:

data = {
   'Sim_1':{
      'sig1':[
         1,
         2,
         3
      ],
      'sig2':[
         4,
         5,
         6
      ]
   },
   'Sim_2':{
      'sig3':[
         7,
         8,
         9
      ],
      'sig4':[
         10,
         11,
         12
      ]
   },
   'Com_1':{
      'sig5':[
         13,
         14,
         15
      ],
      'sig6':[
         16,
         17,
         18
      ]
   },
   'Com_2':{
      'sig7':[
         19,
         20,
         21
      ],
      'sig8':[
         128,
         23,
         24
      ]
   }
}
x=[[],[],[],[],[],[],[],[]]

基本上,我想创建一个空列表,其长度等于我上面提到的字典中的键数。这里的问题是,字典可能会有所不同。也就是说,字典“数据”中每个字典中的信号数量可能不同。

列表理解对于这样的多维数据结构非常有用

x = []
for _ in range(len(data)):
    x.append([])
在本例中,它是一个两层数据结构,因此需要两个内部
循环

>>> [[] for simcom in data.values() for sig in simcom ]
[[], [], [], [], [], [], [], []]
这真的很好,因为如果你保持它们的简单,你就可以像读一个英语短语一样读懂它们。上面说

每个sim/com的空列表,它是此sim/com中每个信号的数据记录中的一个值


上面的脚本创建了一个空列表,比如:x=[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]。。因为我正在考虑字典“数据”中的字典元素,所以他想计算sig,不是SIM/COM。我想指出,
data
对于变量来说是个糟糕的名字,因为实际上计算机上的一切都是数据。:)