繁体   English   中英

Python 比较 2 个大小列表增加的 Python 方法是什么?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM