我有一個網格(6行,5列):刪除的行或列,如果所有的值(即行或列中)是無
grid = [
[None, None, None, None, None],
[None, None, None, None, None],
[None, None, None, None, None],
[None, None, None, None, None],
[None, None, None, None, None],
[None, None, None, None, None],
]
我增強電網,它可能變成
grid = [
[{"some" : "thing"}, None, None, None, None],
[None, None, None, None, None],
[None, None, None, None, None],
[None, None, None, {"something" : "else"}, None],
[None, {"another" : "thing"}, None, None, None],
[None, None, None, None, None],
]
我想刪除,在他們有所有None
的整個行和列:喜歡的東西。所以在前面的代碼,電網將被轉化爲:
grid = [
[{"some" : "thing"}, None, None],
[None, None, {"something" : "else"}],
[None, {"another" : "thing"}, None],
]
我刪除行1,2,5(零索引)和列2和4
我現在刪除的行方式:
for row in range(6):
if grid[row] == [None, None, None, None, None]:
del grid[row]
我還沒有像樣的方式刪除None
列。有沒有這樣做的「pythonic」方式?
謝謝!這是完美的。 – Matt
如果應該將與「」或「[]」相似的值與「無」區分開來,則會出現錯誤。它也只比我的答案慢了一倍,比我的答案慢了26.8:12.3(當在兩者中都使用相同形式的any()時,顯然'任何(n不是x的n)'比'any (x)的')。 – 2009-12-31 05:00:39
是的,我知道這不會是最快的方法,但是如果它更容易理解並且它不是關鍵循環的一部分,我認爲較慢的解決方案是可以接受的。 –