您好,登錄后才能下訂單哦!
假設有 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)
推薦使用第二個高階函數的方法
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。