我有阵列
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('')
没有帮助..
答案 0 :(得分:6)
使用filter()
call和None
作为过滤器(测试真相,非空虚):
a = filter(None, a)
或列表理解:
a = [e for e in a if e]
如果您需要明确允许其他“false”值而只想要过滤掉空字符串,请使用:
a = [e for e in a if e != '']
答案 1 :(得分:0)
如果这些项目实际上是''
,换句话说,是空字符串,那么您可以使用以下内容:
a = [x for x in a if x]
由于在真值测试语句中使用空字符串时计算结果为false。
答案 2 :(得分:-1)
尝试
for i in a:
a.remove('')
a.remove('')
我也不确定为什么在第一次它没有删除所有,但在第二次确定它删除所有空白