我有一个这样的列表:
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 的顺序。
