Python遍历数组无法捕获所有元素

时间:2019-08-22 16:21:18

标签: arrays python-3.x python-3.6

我在python中执行“ for y in x”循环,并尝试删除每个空(“”)元素。但是它不能捕获所有空元素,因此我必须多次运行它。

我尝试更改输出并手动将其加载到数组中,该方法也不起作用。我也在Python3.4上尝试过,但是同样的问题仍然存在。

temp  
Output: ['18:10:01', '', '', '', '', '', '', '', 'all', '', '', '', '', '', '0.42', '', '', '', '', '', '0.00', '', '', '', '', '', '0.48', '', '', '', '', '', '0.03', '', '', '', '', '', '0.18', '', '', '', '', '98.89']  

for c in temp:  
     if(c==''):  
             temp.remove(c)  


temp  
Output: ['18:10:01', 'all', '0.42', '0.00', '', '0.48', '', '', '', '', '', '0.03', '', '', '', '', '', '0.18', '', '', '', '', '98.89'] 

我希望它通过数组并删除每个空元素,仅保留我想要的数据。但是,正如您从最后一行的输出中看到的,情况并非如此。它仍然有很多空元素。

2 个答案:

答案 0 :(得分:1)

您的问题很可能是您在遍历列表时正在修改列表,这可能会引起各种混乱。

解决问题的最佳方法是像这样使用列表理解:

temp = [li for li in temp if li != '']

这将从不为空字符串的列表项中创建一个新列表。

我建议您更多地研究列表理解功能,因为它是功能强大的工具。

答案 1 :(得分:0)

您正在尝试从要迭代的数组中删除元素。它在内部弄乱了索引。更好的方法是返回没有空字符串的新数组。

result = [item for item in the_list if item]