[英]Python what is the pythonic way of comparing 2 increasing in size lists?
我有一个列表(列表 a),它根据大小增加,并从该列表中删除项目并放入另一个列表(列表 b),以维护已检查的内容。
维护的列表(列表 b)已经完成的内容需要与包含尚未检查的内容的列表(列表 a)进行比较; 在 python 中进行此检查的最有效方法是什么? 即使每个列表的内容可以 go 远远超过 10k 项。
while listA:
for a in listA:
#do something
listB.append(url)
listA.remove(url)
这是我能得到的最远距离。
您的代码将产生不一致的 output。 您不应在同一循环上下文中迭代和修改列表。
您可以使用listA
作为Queue
:
while len(listA):
element = listA.pop()
#do something with element
listB.add(element)
这段代码是一致的,因为即使在 while 循环中修改了列表,也没有为listA
创建迭代器。 仅检查列表的 len 以确保程序终止。
这取决于你真正需要什么。 要比较两个列表中的唯一值,您可以尝试使用set data type :
a = xrange(11000)
b = xrange(0,11000,10)
diff = set(a).difference(set(b))
inter = set(a).intersection(set(b))
您也可以尝试查看一下difference_update :
更新集合,移除在其他集合中找到的元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.