简体   繁体   English

从二维数组中删除空元素

[英]Remove empty elements from 2d array

For following table:对于下表:

table = [["David, О.А.", "12651@gmail.com", "12651@gmail.com"],
         ["Lincoln, С.Е.", "qwe@mail.ru", "qwe@mail.ru"],
         [None, None, None],
         ["White, K.О.", "rak9@yahoo.com", "rak9@yahoo.com"],
         ["Pinkman, С.Е.", "mki@mail.ru", "mki@mail.ru"],
         [None, None, None]]

I tried to remove empty elements with this:我试图用这个删除空元素:

table = filter(None, table)

But this doesn't effect at all and the table remains same.但这根本不起作用,表格保持不变。 How to get rid of empty elements to get the following output:如何摆脱空元素以获得以下输出:

-------------  ---------------  ---------------
David, О.А.    12651@gmail.com  12651@gmail.com
Lincoln, С.Е.  qwe@mail.ru      qwe@mail.ru
White, K.О.    rak9@yahoo.com   rak9@yahoo.com
Pinkman, С.Е.  mki@mail.ru      mki@mail.ru
-------------  ---------------  ---------------

In python any non-empty list is considered truthy so your filter do not remove them, use any built-in function to allow only lists which have at least 1 truthy element that ispython中,任何非空list都被认为是真实的,因此您的filter不会删除它们,使用any内置函数仅允许具有至少 1 个真实元素的列表

table = [["David, О.А.", "12651@gmail.com", "12651@gmail.com"],
         ["Lincoln, С.Е.", "qwe@mail.ru", "qwe@mail.ru"],
         [None, None, None],
         ["White, K.О.", "rak9@yahoo.com", "rak9@yahoo.com"],
         ["Pinkman, С.Е.", "mki@mail.ru", "mki@mail.ru"],
         [None, None, None]]
table = list(filter(any, table))
print(table)

output输出

[['David, О.А.', '12651@gmail.com', '12651@gmail.com'], ['Lincoln, С.Е.', 'qwe@mail.ru', 'qwe@mail.ru'], ['White, K.О.', 'rak9@yahoo.com', 'rak9@yahoo.com'], ['Pinkman, С.Е.', 'mki@mail.ru', 'mki@mail.ru']]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM