Python中文
首页
教程
问答
标签
搜索
登录
注册
在python中,在validity ch之后从列表中删除项
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>背景:</p> <p>我正在写一个小脚本,它需要一个文件中的电子邮件地址列表。脚本将他们继续使用电子邮件地址通过telnet连接到一个SMTP服务器,所以他们需要在语法上是有效的;因此我设置了一个函数来检查电子邮件地址的有效性(顺便说一句,这个正则表达式可能不完美,但不是问题的焦点,请接受我。可能会放松):</p> <pre><code>def checkmailsyntax(email): match = re.match('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$', email) if match == None: return True </code></pre> <p>main()程序继续将输入文件名作为参数读取(在argparse中),并将其插入(当前为全局)列表中:</p> ^{pr2}$ <p>我想如果<code>checkmailsyntax</code>函数失败,脚本自动从列表中删除一个电子邮件地址(而不是仅仅告诉您它是错误的,这是它过去所做的),这将是非常好的。这个清理后的列表可以继续向SMTP服务器提交语法上有效的电子邮件地址:</p> <pre><code>for i in target_email_list: if checkmailsyntax(i): target_email_list.remove(i) </code></pre> <p>检查我在delete元素片段之前和之后放入的代码时出错,以查看它是否起作用:</p> <pre><code>for i in target_email_list: print i </code></pre> <p>问题是:代码的输出是:</p> <p>在删除元素片段(以及提交的文件的全部内容)之前:</p> <pre><code>me@example.com you@example.com them@example.com noemail.com incorrectemail.com new@example.com pretendemail.com wrongemail.com right@example.com badlywrong.com whollycorrect@example.com </code></pre> <p>删除元素片段后:</p> <pre><code>me@example.com you@example.com them@example.com incorrectemail.com new@example.com wrongemail.com right@example.com whollycorrect@example.com </code></pre> <p>所以我很困惑为什么<code>'noemail.com'</code>、<code>'pretendemail.com'</code>和{<cd4>}被移除,而{<cd5>}和{<cd6>}却没有。当文件中连续出现两封语法错误的电子邮件时,似乎会发生这种情况。在</p> <p>谁能给我指出正确的方向吗?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>AKS的答案已经涵盖了你:不要从你正在迭代的列表中删除!为了快速修复,可以在迭代副本时从实际列表中删除:</p> <pre><code>for i in target_email_list[:]: # iterates over the slice if checkmailsyntax(i): target_email_list.remove(i) # removes from actual list </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
5 回答
如何添加表示整数的擦边字符串?
2 回答
如何添加要在Bokeh中使用的新font.ttf文件?
8 回答
如何添加要显示的矩阵XY轴编号和XY轴
10 回答
如何添加计数?
8 回答
如何添加计数器函数?
8 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
3 回答
如何添加计数器来跟踪while循环中的月份和年份?
6 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
8 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
4 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
10 回答
如何添加评论拉梅尔亚姆
2 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
6 回答
如何添加谷歌地点自动完成到Flask?
3 回答
如何添加超时、python discord bot
6 回答
如何添加超过1dp的检查
7 回答
如何添加距离方法
10 回答
如何添加跟随游戏的敌人精灵
10 回答
如何添加路径以便python可以找到程序?
5 回答
如何添加身份验证/安全性以使用happybase访问HBase?
9 回答