Python 遍历数组不会捕获每个元素

Python loop through array doesn't catch every element

我在 python 中执行 "for x in y" 循环,并尝试删除每个空 ("") 元素。但它并没有捕获每个空元素,我必须多次 运行 它。

我尝试更改输出并手动将其加载到数组中,但这也没有用。我也在 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'] 

我希望它遍历数组并删除每个空元素,只留下我想要的数据。但是从最后一行的输出可以看出,情况并非如此。它仍然有很多空元素。

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

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

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

这将创建一个仅包含非空字符串的列表项的新列表。

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

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

result = [item for item in the_list if item]