假設(shè)有 number,group,兩個(gè)數(shù)組,其中的元素都是數(shù)字,現(xiàn)在要對(duì)其排序排序的規(guī)則如下:
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比藍(lán)田網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式藍(lán)田網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋藍(lán)田地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。
1.如果 group里面元素,存在于numbers了里面
2.要把出現(xiàn)在 group 內(nèi)的數(shù)字 放在 number 的那些數(shù)字之前,注意排序
numbers = [8, 3 ,1, 2, 5,4,7,6]
group = {2,3,5,7}
分析了下,應(yīng)該是優(yōu)先級(jí)的問(wèn)題,這里使用了元組排序的方法:
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)))
在網(wǎng)上看到了一個(gè)經(jīng)典的代碼:
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)
推薦使用第二個(gè)高階函數(shù)的方法