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