我知道循环在 python 中是个坏主意,我应该避免它们。
嗯,我有几个我想避免的。
我有一个名为 lipid 的列表:
class bead:
x = 0
y = 0
z = 0
LID = 0
t = 0
class lipid:
h = bead()
b = bead()
t = bead()
LID = 0
我正在执行以下操作(下面的代码):
- 初始化
h
的二维数组,遍历所有脂质和 - 判断他们是算作
U
还是down - 将值添加到适当的
h
我怎样才能至少避免第一个循环?
1:
class h:
cU = 0
cD = 0
hU = 0
hD = 0
h = 0
for i in range(0,8):
hs.append([])
for j in range(0,8):
index = (i,j)
hn = h()
hs[i].append(hn)
2 和 3:
for LID in lipids:
l = lipids[LID]
up = l.h.z > l.t.z
X = (int)(l.b.x*8/L)
Y = (int)(l.b.y*8/L)
Z = (l.b.z)*0.5
if up:
hs[X][Y].hU += Z
hs[X][Y].cU += 1
else:
hs[X][Y].hD += Z
hs[X][Y].cD += 1
最佳答案
循环不是一个坏主意。只是循环密集型代码可能很慢。但这并不是循环所特有的,只是 Python 通常不如其他一些语言那么快。如果循环是您算法的最自然表达,我建议您不要避免循环。如果您的代码比您预期或需要的速度慢,请寻找优化它的方法(首先是分析)。
article关于维基百科中算法的分析可能对您有用。
关于python - 避免在 python 中循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8869579/