java数组排序-创新互联
假设有 number,group,两个数组,其中的元素都是数字,现在要对其排序排序的规则如下:
创新互联专注于企业网络营销推广、网站重做改版、靖江网站定制设计、自适应品牌网站建设、H5页面制作、商城开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为靖江等各大城市提供网站开发制作服务。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)
推荐使用第二个高阶函数的方法
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享名称:java数组排序-创新互联
新闻来源:http://scpingwu.com/article/docpjc.html