Skip to main content
 首页 » 编程设计

python之如何使用 python 制作现有列表中重复条目的另一个列表

2025年05月04日15artech

我有一个这样的列表:

l = [[(3,4)], [(3,7)], [(3,8)]] 

我使用 chain() 函数来平整列表,现在我有一个如下列表:

l2 = [3,4,3,7,3,8] 

我想将重复的项目分离到另一个列表中:

l3 = [3,3,3] 
l4 = [4,7,8] 

我使用了 set() 函数,但它破坏了重复项并导致:

l3 = [4,7,8] 

但我想分别获得它们

请您参考如下方法:

你必须做一些计数。使用 collections.Counter() class会让事情变得简单:

from collections import Counter 
counts = Counter(main_list) 
 
duplicate_list, unique_list = [], [] 
for entry in main_list: 
    if counts[entry] > 1: 
        duplicate_list.append(entry) 
    else: 
        unique_list.append(entry) 

counts 是一个multi-set或者bag;条目到它在 main_list 中的计数的映射。上面的示例保留了 main_list 的顺序。