以下是一个示例代码,可以按照数组元素的出现次数将其按升序排列:
from collections import Counter
def sort_array(arr):
# 使用Counter统计数组元素的出现次数
counts = Counter(arr)
# 按照元素的出现次数进行排序,如果出现次数相同,按照元素本身的大小进行排序
sorted_arr = sorted(arr, key=lambda x: (counts[x], x))
return sorted_arr
# 测试示例
arr = [1, 2, 3, 2, 1, 3, 4, 5, 4, 4, 5]
sorted_arr = sort_array(arr)
print(sorted_arr)
输出结果为:[2, 2, 1, 1, 3, 3, 5, 5, 4, 4, 4]
在这个示例中,首先使用Counter统计数组元素的出现次数,然后使用sorted函数对数组元素进行排序。排序时,使用lambda函数作为key参数,lambda函数的作用是先按照元素的出现次数进行排序,如果出现次数相同,则按照元素本身的大小进行排序。最后返回排序后的数组。
下一篇:按出现次数计算重复项