我有一个很大的2D列表,在一些子列表中有重复的内容.我想退还2个或更多的副本,如果不可能的话,请先退还副本.例如,

Df =[[2,3,5,20],[5,10,20,10],[4,13,15,15,17,34,17],[33,34,15,21],[12,16,24,32,12,33,24]]

我想要这样的结果:

Df2 = [[15,17,4,13,34],[12,24,16,32,33]]

我已经try 了下面的代码,但我希望它只返回有2个或更多副本的副本.

res = [t for t in Df if len(t) > len(set(t))]

推荐答案

您可以使用collections模块中的Counter来计算子列表中每个元素的出现次数.然后,过滤掉那些有重复项的子列表

from collections import Counter

Df = [[2, 3, 5, 20], [5, 10, 20, 10], [4, 13, 15, 15, 17, 34, 17], [33, 34, 15, 21], [12, 16, 24, 32, 12, 33, 24]]

# Count occurrences of elements in each sublist
counts = [Counter(sublist) for sublist in Df]

# Find sublists with duplicates and at least 2 duplicates
duplicates = [[elem for elem, count in sorted(count.items(), key=lambda x: x[1], reverse=True)] 
              for count in counts if sum(val > 1 for val in count.values()) >= 2]

print(duplicates)

-你在做什么?

[[15, 17, 4, 13, 34], [12, 24, 16, 32, 33]]

Python相关问答推荐

如何在具有重复数据的pandas中对groupby进行总和,同时保留其他列

大Pandas 胚胎中产生组合

比较两个数据帧并并排附加结果(获取性能警告)

将两只Pandas rame乘以指数

基于字符串匹配条件合并两个帧

Django REST Framework:无法正确地将值注释到多对多模型,不断得到错误字段名称字段对模型无效'<><>

Scrapy和Great Expectations(great_expectations)—不合作

有没有一种ONE—LINER的方法给一个框架的每一行一个由整数和字符串组成的唯一id?

如何合并两个列表,并获得每个索引值最高的列表名称?

为什么numpy. vectorize调用vectorized函数的次数比vector中的元素要多?

dask无groupby(ddf. agg([min,max])?''''

干燥化与列姆化的比较

如何在海上配对图中使某些标记周围的黑色边框

Python—在嵌套列表中添加相同索引的元素,然后计算平均值

如何在Airflow执行日期中保留日期并将时间转换为00:00

如何在Python中从html页面中提取html链接?

用由数据帧的相应元素形成的列表的函数来替换列的行中的值

GEKKO中若干参数的线性插值动态优化

Pandas查找给定时间戳之前的最后一个值

从`end_date`回溯,如何计算以极为单位的滚动统计量?