python - 避免在 python 中循环

标签 python loops

我知道循环在 python 中是个坏主意,我应该避免它们。

嗯,我有几个我想避免的。

我有一个名为 lipid 的列表:

class bead:
    x = 0
    y = 0
    z = 0
    LID = 0
    t = 0

class lipid:
    h = bead()
    b = bead()
    t = bead()
    LID = 0

我正在执行以下操作(下面的代码):

  1. 初始化 h 的二维数组,遍历所有脂质和
  2. 判断他们是算作U还是down
  3. 将值添加到适当的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/

相关文章:

python - 如何更改 tensorflow 中的符号变量(tf.Variable)?

javascript - 带循环的最大公约数

javascript - Jquery 循环问题

python - 从已在 pandas 中重新索引的数据透视表中选择一列

python - "' str ' object has no attribute ' 将 slug 传递给 django 表单时得到 '"

python - 如何在反斜杠上使用 python 字符串 split() ?

python - 将 WRDS SQL 查询保存到 python 中的文件中

C# Texbox 的 'MaxLength' 属性 - 故障 (Winform)

c# - 在列表中跟踪分数以及姓名

javascript - React - 在类方法中使用循环创建表