0

我有数组

a=['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '151 ihi Chun', '151 ihi Chun', '149 st Hg', '149 st Hg', '125 Tatane', '125 Tatane', '174 Sunnygat', '174 Sunnygat', '174 Sunnygat', '126 Nank', '126 Nank', '162 Rass', '162 Rass']

我想删除所有''对象,但不能。

a.remove('')

或者while a.index(''): a.remove('')

没救了。。

4

3 回答 3

6

使用filter()调用withNone作为过滤器(测试真实性,因此非空):

a = filter(None, a)

或列表理解:

a = [e for e in a if e]

如果您需要明确允许其他 'false' 值并且只想过滤掉空字符串,请使用:

a = [e for e in a if e != '']
于 2013-03-13T10:09:14.503 回答
0

如果这些项目实际上是'',换句话说,是空字符串,那么您可以使用以下内容:

a = [x for x in a if x]

由于在真值测试语句中使用空字符串时,其计算结果为假。

于 2013-03-13T10:09:38.177 回答
-1

尝试

for i in a:
   a.remove('')
   a.remove('')

我也不确定为什么第一次它没有全部删除,但第二次确定它删除了所有空白

于 2013-03-13T10:31:19.610 回答