java数组排序
admin
2023-02-14 14:40:03
0

假设有 number,group,两个数组,其中的元素都是数字,现在要对其排序排序的规则如下:

1.如果 group里面元素,存在于numbers了里面

2.要把出现在 group 内的数字 放在 number 的那些数字之前,注意排序

numbers = [8, 3 ,1, 2, 5,4,7,6]

group = {2,3,5,7}

分析了下,应该是优先级的问题,这里使用了元组排序的方法:

numbers = [8, 3 ,1, 2, 5,4,7,6]
group = {2,3,5,7}
tmp = []
for x in numbers:
    if x in group:
        tmp.append((0, x))
    else:
        tmp.append((1, x))
tmp.sort()
print(list(map(lambda x:x[1], tmp)))

在网上看到了一个经典的代码:

def sort_priority(values,group):
    def helper(x):
        if x in group:
            return (0, x)
        return (1, x)
    values.sort(key=helper)

numbers = [8, 3 ,1, 2, 5,4,7,6]

group = {2,3,5,7}
sort_priority(numbers, group)
print(numbers)

推荐使用第二个高阶函数的方法

相关内容

热门资讯

波兰总理:美武装干预将对国际秩... △波兰总理图斯克(资料图)当地时间1月15日,波兰总理图斯克在新闻发布会上表示,波兰不打算向格陵兰岛...
美国移民与海关执法局副局长宣布... △麦迪逊·希恩(资料图)当地时间1月15日,美国移民与海关执法局(ICE)副局长麦迪逊·希恩宣布于当...
中国移动申请业务关键信息识别方... 国家知识产权局信息显示,中移雄安信息通信科技有限公司、中移系统集成有限公司、中国移动通信集团有限公司...
推动人工智能与制造业“双向奔赴... 来源:科技日报 1月7日,工业和信息化部、中央网信办、国家发展改革委等八部门联合印发的《“人工智能+...
美媒紧张:美国下滑,中国跃升,... 【文/观察者网 熊超然】曾几何时,在一项根据学术出版物为衡量标准的全球排名中,哈佛大学一度是全球科研...
双安电力申请防雷保护装置专利,... 国家知识产权局信息显示,双安电力科技有限公司申请一项名为“一种防雷保护装置”的专利,公开号CN121...
卫星互联网:从狂热炒作到价值回... 从根本上看,这一轮市场波动与分化,部分源于对相关产业概念的模糊认知。“商业航天”与“卫星互联网”并非...
中方向泰国民众提供2000万援... 1月15日,驻泰国大使张建卫会见泰国总理阿努廷,转交中国政府向受泰柬边境冲突影响泰国民众提供的人道主...
苹果首款折叠iPhone Fo... 韩国消息源 yeux1122 昨日(1 月 14 日)透露,苹果正计划在其首款折叠屏 iPhone ...