力扣https://leetcode-cn.com/problems/relative-sort-array/leetcode 1122 数组的相对排序 -- 简单
arr2 += sorted(set(arr1)-set(arr2)) 执行后的arr2等于arr2 += sorted(set(arr1)-set(arr2))
可见arr2 的前面是由arr2的原来arr2中的值和后面arr1中的值组成,这里用两个set相减来取两个的差集
其次针对list的排序,如果排序的函数是针对list本身的元素,则key后面的排序函数可以简写.
class Solution:
def relativeSortArray(self,arr1,arr2):
arr2 += sorted(set(arr1)-set(arr2))
arr1.sort(key=arr2.index)
return arr1
if __name__ == "__main__":
arr1=[2,3,1,3,2,4,6,7,9,2,19]
arr2=[2,3,4,3,9,6]
print(Solution().relativeSortArray(arr1,arr2))