遍历python列表

遍历python列表,python,Python,我的数据库中有500条记录,我正在将它们全部加载到字典元素的python列表中。25个键值对 我正在调用一个方法,该方法遍历列表中的所有字典元素,并对每个记录执行一些操作。在遍历时,我注意到在遍历了一半的元素之后,逻辑正在退出该方法,并再次重新启动下一半 我试着把它作为一个例子。我无法复制准确的代码,因为这是不可能的 例: 我不知道为什么它每次只处理总记录的一半。 但是,最后,它正在处理所有记录 我已经试着检查python列表的最大大小或内存是否有任何问题,但这些问题似乎都不可能出现 我很乐意知

我的数据库中有500条记录,我正在将它们全部加载到字典元素的python列表中。25个键值对

我正在调用一个方法,该方法遍历列表中的所有字典元素,并对每个记录执行一些操作。在遍历时,我注意到在遍历了一半的元素之后,逻辑正在退出该方法,并再次重新启动下一半

我试着把它作为一个例子。我无法复制准确的代码,因为这是不可能的

例:

我不知道为什么它每次只处理总记录的一半。 但是,最后,它正在处理所有记录

我已经试着检查python列表的最大大小或内存是否有任何问题,但这些问题似乎都不可能出现


我很乐意知道任何可能的原因。

我要在黑暗中冒险一试

你正在做这样的事情:

def myrun():
    print "****** Execution Started **********"
    for row in mylist:
        #Some processing here
        myList.remove(row)

不能对正在迭代的列表进行变异。这将只占每次处理列表的一半。您需要重构代码。如果您不向我们展示代码,我甚至不会尝试进行重构。

您的代码有问题,但无法向我们展示代码,但仍然希望有人指出问题所在?这将很困难。据我们所知,当您完成列表的一半时,您已经显式地编写了一个中断条件。不太可能,但我们怎么知道呢?谢谢安德鲁的疯狂尝试。我没记错。是的,你说得对。在我的一个方法中,我将从列表中删除正在迭代的项。正如你提到的,它只处理其中一半的BCO项目。现在,我已经对我的代码进行了注释,它现在正在遍历全部元素,而没有将其减半。正如我前面提到的,由于一些隐私限制,我无法共享代码。不管怎样,你都能找到问题所在。谢谢你。我想知道为什么每次有删除逻辑时python只处理一半的元素。另外,由于我需要按照逻辑从列表中删除该项,您认为保留旧代码会导致任何问题吗。最后,我仍然在处理所有的元素,但每次处理都是一半进行的。这比我在这里能解释得更好。如果您只想处理列表中的每个项目,那么没有理由保持while循环。你肯定想让剧本在某个时候结束吗?谢谢安德鲁。。我现在清楚了。至于你的问题,你肯定想让剧本在某个时候结束吗是的,我不想停止我的脚本,因为它会持续监视数据库中的一些作业。脚本中有一个方法可以执行此操作并处理它们。即使没有工作,也不应该停止。
def myrun():
    print "****** Execution Started **********"
    for row in mylist:
        #Some processing here
        myList.remove(row)