我有一个类似的列表
[1 11 2 2 3 4 4 4]
我想做的代码将首先从列表中删除3(因为它只出现一次(,然后打印列表。然后从列表中删除2,因为它只出现两次。等等。。因此,对于长度为n的列表,在循环中删除最不常见的int,直到列表中只剩下最常见的元素
我知道一个简单的方法就是返回最频繁出现的int,不管我的简报想要这个。。。
def removeLeast(arr):
data = {}
for i in arr:
if i not in data:
data[i] = 1
else:
data[i]+=1
data = sorted(data.items(), key=lambda x: x[1])
for i in range(len(data)-1):
x = data[i]
for j in range(x[1]):
arr.remove(x[0])
print(arr)