通过增加 Python 中元素的频率对数组进行排序的程序

假设我们有一个包含一些元素的数组,其中元素可能出现多次。我们必须对数组进行排序,以便元素根据其频率的增加进行排序。那么哪个元素出现的次数较少将首先出现,依此类推。

因此,如果输入类似于 nums = [1,5,3,1,3,1,2,5],那么输出将是 [2, 5, 5, 3, 3, 1, 1, 1]

示例(Python)

让我们看看以下实现以获得更好的理解 -

def solve(nums):
   mp = {}
   for i in set(nums):
      x=nums.count(i)
      try:
         mp[x].append(i)
      except:
         mp[x]=[i]
   ans=[]

   for i in sorted(mp):
      for j in sorted(mp[i], reverse=True):
         ans.extend([j]*i)
   return ans

nums = [1,5,3,1,3,1,2,5]
print(solve(nums))

输入

[1,5,3,1,3,1,2,5]
输出结果
[2, 5, 5, 3, 3, 1, 1, 1]

猜你喜欢