如何在循环中删除列表中最不常见的int



我有一个类似的列表

[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)

最新更新