2015-09-06 98 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