元素的多重排序
应用场景:渲染用户界面时,因为关键的消息和特殊的事件应该优先显示在其他信息之前。
numbers = [8, 3, 1, 2, 5, 4, 7, 6] //原始数据
group = {8, 3, 5, 7} //优先级高的数据,
def sort_priority(numbers, group):
found = False
def helper(x):
nonlocal found
if x in group:
found = True
return 0, x
return 1, x
numbers.sort(key=helper)
return found
res = sort_priority(numbers, group)
print(res, numbers) //打印
完善用类方法实现
# 优化 类方法
class Sorter:
def __init__(self, group):
self.group = group
self.found = False
def __call__(self, x):
if x in self.group:
self.found = True
return 0, x
return 1, x
sorter = Sorter(group)
numbers.sort(key=sorter)
print(numbers)
assert sorter.found is True
输出结果
True [3, 5, 7, 8, 1, 2, 4, 6]
[3, 5, 7, 8, 1, 2, 4, 6]
作者:朱海波
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!