其实嵌套for循环需要的计算量偏大,能优化或者不用嵌套是最好了。
结合其他博主:
1 将循环次数多的循环放在内侧,循环次数少的循环放在外侧;
2 减少循环变量的实例化;(就是循环条件里尽量少设运算,只设循环满足条件,让循环能进行下去,这样能加快运算速度。)
那我再增加一点,当用for 打开文件时,对文件的每一行处理需要注意的事项。
文件打开有两种方式:
第一种:
需要打开+关闭
file=open()
file.close()
第二种:
不需要后续关闭,但其里面的代码都需要缩进
with open() as file:
for line in file:
两种都可以,看个人需求。
像我一般喜欢第一种方式,但对于嵌套for循环,可能就容易踩坑了。
一般是类似这样的嵌套👇
for line in file:
for line1 in res:
需要明白一点的是,对于file这个文件的每一行,都把res文件遍历了一遍,相当于file文件有多少行,就把res文件打开了多少遍。
如果设置成这样👇
file=open()
res=open()
for line in file:
for line1 in res:
file.close()
res.close()
那恭喜你,完美踩坑,因为整个代码运行下来,res文件就打开了一次啊,你不出错谁出错。
可以改成:
file=open()
for line in file:
with open() as res:
for line1 in res:
file.close()
这里只写了一种改进方法,当然也可以都用with open() as … 这种格式;或者在第一个for循环之后再打开和关闭文件;看个人偏好啦。
OVER