python for循环在每次迭代后排除值

时间:2018-02-08 17:07:56

标签: python

所以我有两个ids的ids列表以及我正在循环的其他信息。我尝试匹配id并根据id连接分配行值。

下面的例子只是对我实际做的一般测试,但一旦我理解了如何解决我需要的东西,我就可以将它应用到我的例子中。

for row in l1:
    for info in l2:
        if row[0]==info[0]:
            row[1]=info[1]

每个列表中分别有大约11,000行,因此循环遍历l1然后循环遍历l2列表中的每一行以匹配id需要很长时间。我想知道是否有话要说,好吧,因为l1 id number 3被迭代通过并且该进程完成了该id,然后当l1中的下一行被迭代时l2现在甚至不会搜索id号3已经在它之前的行中进行了处理。

我通常在SQL中运行这样的进程,它有点像自联接......

如果有人投票,他们至少可以告诉我原因!

2 个答案:

答案 0 :(得分:1)

如果您添加,请详细说明上一个答案 break 在if语句的末尾,一旦if语句执行,它将停止内部for循环 for info in l2

继续使用外部for循环 for row in l1

答案 1 :(得分:0)

如果我没错,并且正确地得到了你的问题,你可以使用循环流控制结构,比如

break

continue
例如,在你的情况下,你可以在匹配发生时打破内部循环,因此你的代码不会浪费更多时间循环遍历所有l2。