Python数组去重和排序

liftword1个月前 (04-23)技术文章16
from collections import Counter

def remove_duplicates_and_sort(arr):
    # 统计出现次数
    count = Counter(arr)
    # 按照 (出现次数降序, 首次出现顺序) 排序
    sorted_items = sorted(count.keys(), key=lambda x: (-count[x], arr.index(x)))
    return sorted_items

# 读取用户输入的数组
arr = list(map(int, input("请输入数组元素(以空格分隔):").split()))

# 处理并输出结果
result = remove_duplicates_and_sort(arr)
print("去重排序后的数组:", result)

下面是一个 Python 解决方案,按照题目要求:

  1. 去重:删除所有重复元素。
  2. 按出现次数排序:出现次数从高到低。
  3. 按首次出现顺序排序:相同出现次数时,保持元素第一次出现的顺序。


相关文章

Python实现数组条件判断

任务要求对一个整数数组,如果整数数组中存在重复元素且重复元素均不相邻,函数返回字符"01";如果整数数组每个元素均不相同且偶数元素个数大于奇数元素个数,函数返回字符"02...

Python编程如何合并有序数组

如果现在有两个数组,用户需要我们把这数组要合在一起,要怎么弄呢?我们要分析逻辑,只要你的逻辑思路是对的,实现起来就不难了,就怕没有思路,那实现就很难。按照思路编制出来,然后调试运行是不是达到的预期的效...

protobuf之序列化数据和反序列化数据基础知识

什么是 protobufProtocal Buffers(简称protobuf)是谷歌的一项技术,用于结构化的数据序列化、反序列化。Protocol Buffers 是一种语言无关、平台无关、可扩展的...

物理老师教你学Python语言(下篇)

下篇:物理建模与综合项目核心目标:掌握微分方程数值解、面向对象编程和交互式可视化,构建可扩展的物理仿真系统第7章 动态系统模拟7.1 数值解法与经典力学案例1:弹簧振子动力学(欧拉法)import n...