Python 循环问题,求助

2022-05-05 21:54:58 +08:00
 fyourm

最近写 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 个小时,郁闷了,循环会把速度拖慢这么多吗,是这四重循环的问题吗,有啥改进方法吗

2318 次点击
所在节点    Python
11 条回复
cocong
2022-05-05 21:58:28 +08:00
加个计时,看哪里最耗时,就知道了。
Juszoe
2022-05-05 22:00:09 +08:00
跑个 profile ,大概是代码有问题
alsas
2022-05-05 22:00:53 +08:00
python 循环本来就慢 用 numba 加速下
leimao
2022-05-05 22:16:31 +08:00
zictos
2022-05-05 22:23:00 +08:00
就这么一点数据量不可能要这么久的,我试了就 1 秒不到
stein42
2022-05-05 22:23:18 +08:00
请讲下你用的什么硬件和软件。
定义 4 个变量用时 4 秒,感觉这里不适合用 python 。
happybabys
2022-05-05 22:30:27 +08:00
升级硬件试试看
zictos
2022-05-05 22:32:16 +08:00
@stein42 #6 哈哈,定义 4 个变量用时 4 秒还感觉速度可以
fyourm
2022-05-05 22:32:48 +08:00
搞定了,把那段代码 def 成一个函数再放进 4 重循环里,4 个变量作为参数传递进函数就行了,速度又变回 4 秒一次循环了,也不知道为什么,大概我这段代码里面有什么内存泄漏吧
LeeReamond
2022-05-05 23:04:48 +08:00
虽然看不懂,定义四个变量跑四秒让我很震惊,但想必 LZ 改的很嗨吧。。
fyourm
2022-05-05 23:14:56 +08:00
@LeeReamond 代码还是有点小复杂,其中定义了 4 个变量参数,想看看参数的变化会影响我代码的最终结果,所以定义了列表想遍历一下所有参数变化的可能性

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/851049

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX