list.sort(key = lambda x: (x[0], x[1]。。。))的用法可以快速解决问题,
class Solution: def filterRestaurants(self, restaurants: List[List[int]], veganFriendly: int, maxPrice: int, maxDistance: int) -> List[int]: cand = [] if veganFriendly == 1: for idx, rest in enumerate(restaurants): if rest[2] == veganFriendly and rest[3] <= maxPrice and rest[4] <= maxDistance: cand.append(rest) else: for idx, rest in enumerate(restaurants): if rest[3] <= maxPrice and rest[4] <= maxDistance: cand.append(rest) cand.sort(key = lambda x:(x[1], x[0]), reverse = True) res = [] for can in cand: res.append(can[0]) return res
不过面试里没准要自己写比较器之类的吧。题目里的餐厅ID不全是1、2、3。。。算是一个坑?。。