簡體   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