一、疑难杂症
最近工作中遇到一个难题,优化一个项目的计算时间。最初,建立项目时用户少,中间使用了for循环,还是嵌套的,共两层,项目整体运行一次耗时1-2个小时。最近,随着用户量增长,项目耗时达到6-7个小时。显然是不能接受的。
for t, w in user_tags:
for it, w in tag_items[t]:
...some计算...
上面的计算,外层x内层的次数大于60万。于是,时间就长了。
二、原因分析
原因很简单就是用
一.问题描述
在二维数组的遍历中,我们经常使用双层for循环。在某些时候,我们并不需要遍历整个二维数组。当条件满足时就应该终止for循环。但是,直接在内层循环中break并不会让外层循环也终止。
二.解决方案
使用for…else…语法解决。
for i in range(5):
for j in range(5):
print(i, j)
if i == 3 and j == 3:
break
else:
continue
break
当次循环
python在数值赋值的时候可以采用数值内循环赋值,很方便
如下
a = [x for x in range(10)]
这样
a = [0,1,2,3,4,5,6,7,8,9]
这里循环得到的是x,x是每次循环的值,这里就是0123456789
如果需要用到x
如下
d = [np.random.rand(10,x) for x in range(10)]
print(d)
d 第一次循环产生10个20行1列的二维数组
第二次循环产生10个20行2列的二维数值
…..
….
以上这篇py