我有一个超过20行的2D列表.我希望对每个子列表中重复项最多的项进行排序并返回.
list1 = [[a,a,b, b, b, v,v,v,v,x,x,p], [b, c, d, c], [a, j,j,j,c,c,f,f,h,h,h,h]]
我希望我的结果是这样的.
List2 = [[b,v,a,x],[c],[h,j,c,f]]
我有一个超过20行的2D列表.我希望对每个子列表中重复项最多的项进行排序并返回.
list1 = [[a,a,b, b, b, v,v,v,v,x,x,p], [b, c, d, c], [a, j,j,j,c,c,f,f,h,h,h,h]]
我希望我的结果是这样的.
List2 = [[b,v,a,x],[c],[h,j,c,f]]
以下是使用计数器的解决方案:
import collections
list1 = [["a","a","b","b","b","v","v","v","v","x","x","p"],["b","c","d","c"],["a","j","j","j","c","c","f","f","h","h","h","h"]]
list2 = []
for l in list1:
c = collections.Counter(l)
list2.append( [k for k,v in c.items() if v > 1] )
print(list2)
输出:
[['a', 'b', 'v', 'x'], ['c'], ['j', 'c', 'f', 'h']]