2015-09-06 97 views
1

进出口新的蟒蛇在删除空的对象,并与阵列,发现问题,玩蟒蛇一个阵列

array = [{'hsp': 24, 'lsp': 22, 'timefrom': '00:00', 'timeto': '23:59'}, 
      {}, {}, {}] 

我想删除空的对象和结果应该是这样的[{'hsp': 24, 'lsp': 22, 'timefrom': '00:00', 'timeto': '23:59'}]

for day,value in array.iteritems(): 
    if not value: 
    continue 
    print array 

发现这忍不住

任何帮助,将不胜感激。 在此先感谢

+0

尝试'newlist = [el for el in array if el]''。顺便说一句:这是一个列表,而不是数组 – Pynchia

+0

'数组[:] = [d为数组中的d,如果d]',这也将删除像无,0等任何Falsey值。 –

+0

谢谢.... ......我很感谢你回复 – spidy

回答

3

你可以使用:

array = [{'hsp': 24, 'lsp': 22, 'timefrom': '00:00', 'timeto': '23:59'}, {}, {}, {}] 
edited_array = [x for x in array if x] 
print(edited_array) 

输出

[{'hsp': 24, 'lsp': 22, 'timefrom': '00:00', 'timeto': '23:59'}] 

在Python中,空字典,{},而空单,[],评估为False。如果不是False(即非空),则上述列表理解将array中的每个项目添加到edited_array

+1

感谢buddy .... it帮助......欢呼声:) – spidy

+0

即时通讯有点困惑,你可以简单介绍为什么x [x for x in array if if] before ......... – spidy

+0

可能最好看一下列表解析示例在这里https://docs.python.org/2/tutorial/datastructures.html – gtlambert