最近写 python 代码遇到一个问题,写了一段代码,定义了 4 个变量 a=1 ,b=2 ,c=3 ,d=4 ,跑了一下,用时 4 秒,感觉速度可以,但想看看这些变量如果定义为其他值,跑出来的结果是怎么样的,就改了一下代码 a=[1,2,3],b=[1,2,3],c=[1,2,3],d=[1,2,3],然后定义了一个四重循环,
for aa in a:
for bb in b:
for cc in c:
for dd in d:
把原来代码原样拷贝了放进去,只是把变量名改了一下,结果跑一次循环要 4 分钟,一共要循环 81 次,要 5.4 个小时,郁闷了,循环会把速度拖慢这么多吗,是这四重循环的问题吗,有啥改进方法吗
1
cocong 2022-05-05 21:58:28 +08:00
加个计时,看哪里最耗时,就知道了。
|
2
Juszoe 2022-05-05 22:00:09 +08:00
跑个 profile ,大概是代码有问题
|
3
alsas 2022-05-05 22:00:53 +08:00
python 循环本来就慢 用 numba 加速下
|
4
leimao 2022-05-05 22:16:31 +08:00 via iPhone
|
5
zictos 2022-05-05 22:23:00 +08:00
就这么一点数据量不可能要这么久的,我试了就 1 秒不到
|
6
stein42 2022-05-05 22:23:18 +08:00
请讲下你用的什么硬件和软件。
定义 4 个变量用时 4 秒,感觉这里不适合用 python 。 |
7
happybabys 2022-05-05 22:30:27 +08:00 via Android
升级硬件试试看
|
9
fyourm OP 搞定了,把那段代码 def 成一个函数再放进 4 重循环里,4 个变量作为参数传递进函数就行了,速度又变回 4 秒一次循环了,也不知道为什么,大概我这段代码里面有什么内存泄漏吧
|
10
LeeReamond 2022-05-05 23:04:48 +08:00
虽然看不懂,定义四个变量跑四秒让我很震惊,但想必 LZ 改的很嗨吧。。
|
11
fyourm OP @LeeReamond 代码还是有点小复杂,其中定义了 4 个变量参数,想看看参数的变化会影响我代码的最终结果,所以定义了列表想遍历一下所有参数变化的可能性
|