社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

python循环遍历数组不捕获每个元素[重复]

Chris • 5 年前 • 1555 次点击  

这个问题已经有了答案:

我在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'] 

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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38554
 
1555 次点击  
文章 [ 2 ]  |  最新文章 5 年前
MjZac
Reply   •   1 楼
MjZac    5 年前

您正在尝试从正在迭代的数组中删除元素。它正在把指数内部搞得一团糟。更好的方法是返回一个没有空字符串的新数组。

result = [x for x in y if x is not '']
Ahndwoo
Reply   •   2 楼
Ahndwoo    5 年前

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

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

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

这将在非空字符串的列表项中创建一个新列表。

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