Python读取邮件列表文件内容重复打印两次的原因及解决办法
问题原因
你的代码中嵌套了多余的内层循环:
- 外层
for x in d遍历得到的每个x,已经是拆分好的长度为2的列表(例如["X", "y@gmail.com"]) - 内层
for y in x会对每个长度为2的x执行2次循环,每次循环都会打印x[0]和x[1],因此每组内容会重复输出2次。
修复方案
有两种常用修改方式,选一种即可:
方式1:删除多余的内层循环
直接在外层循环里打印对应值即可:
for x in d: print(x[0]) print(x[1])
方式2:调整内层循环的打印逻辑
如果需要保留内层循环,直接打印遍历到的y即可,不需要再取x的索引:
for x in d: for y in x: print(y)
可选优化建议
你当前读取文件的方式如果遇到文件末尾有空行,会出现索引报错的问题,可以调整为逐行读取+空行过滤的逻辑,兼容性更好:
d = [] with open("mail_list.txt","r",encoding ="utf-8") as file: for line in file: # 去掉首尾的换行符、空白字符 line = line.strip() # 跳过空行 if not line: continue d.append(line.split(","))
内容的提问来源于stack exchange,提问作者V0LzEn0r
相关产品推荐
相关产品推荐

