簡體   English   中英

在Python中刪除列表列表中重復項的最快方法?

[英]Fastest way to remove duplicates in list of lists in Python?

我在Python3中有一個列表列表,其中的數據如下所示:

['Type1', ['123', '22'], ['456', '80']]
['Type2', ['456', '80'], ['123', '22']]

列表很大,但是上面是我需要刪除的重復數據的示例。 下面是一個數據示例,這些數據不可重復且不需要刪除:

['Type1', ['789', '45'], ['456', '80']]
['Type2', ['456', '80'], ['123', '22']]

我已經刪除了所有完全相同的重復項。 在Python3中完成“反向重復”刪除的最快方法是什么?

兩種可能性:

  1. 將每個子列表轉換為元組,然后插入到集合中。 對比較候選者和比較集執行相同操作以確定相等性。

  2. 為子列表建立排序方法,然后對每個子列表列表進行排序。 這將使比較容易。

這兩種方法基本上都可以解決子列表排序的問題。 還有很多其他方法。

data = [['Type1', ['123', '22'], ['456', '80']],
    ['Type2', ['456', '80'], ['123', '22']]]
myList = []
for i in data:
    myTuple = (i[1], i[2])
    myList.append(myTuple)

print(myList)
for x in myList:
    for y in myList:
        if x==y:
            myList.remove(x)
            break

print(myList)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM