簡體   English   中英

在多個列表中查找重復項並返回 Python 中每個列表的重復項計數

[英]find duplicates in multiple list and return the count of duplicates for each list in Python

有多個列表,

[1,2], [2,3,4], [3,4,5], [6,8,9,10]...

有沒有辦法為每個列表查找和計算重復項? 所以對於上面的列表,我想得到:

[1,2] --- 1 個重復,即 2

[2,3,4] --- 3 個重復,即 2,3,4

[3,4,5] --- 2 個重復,即 3, 4

[6,7,8,9] - 0 個重復

我在想我可以找到重復項,然后將每個列表與重復項進行比較並獲得結果。

有更好/更快的方法嗎? 感謝您的任何建議。

當然,有辦法做到這一點。

首先,將您的列表放入列表中。

list_of_lists = [[1,2], [2,3,4], [3,4,5], [6,8,9,10]]

然后,找出你擁有的所有物品:

all_items = [n for l in list_of_lists for n in l]

然后找出哪些項目是重復的:

duplicates = set([n for n in all_items if all_items.count(n) > 1])

然后計算每個列表的重復項:

for l in list_of_lists:
    duplicate_count = len([n for n in l if n in duplicates])
    print("Duplicates: ", duplicate_count)

順便說一句,我認為您想要3作為第二個答案,因為 2、3 和 4 在您的列表中都是重復的。

Duplicates:  1
Duplicates:  3
Duplicates:  2
Duplicates:  0

暫無
暫無

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

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