为了账号安全,请及时绑定邮箱和手机立即绑定

具有自定义比较谓词的heapq

具有自定义比较谓词的heapq

扬帆大鱼 2019-12-26 09:26:32
我正在尝试使用自定义排序谓词构建堆。由于输入的值属于“用户定义”类型,因此我无法修改其内置比较谓词。有没有办法做类似的事情:h = heapq.heapify([...], key=my_lt_pred)h = heapq.heappush(h, key=my_lt_pred)甚至更好的是,我可以将heapq函数包装在自己的容器中,这样就不需要继续传递谓词。
查看完整描述

3 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

这两个答案的局限性在于它们不允许将领带视为领带。在第一个中,通过比较项目来打破联系,在第二个中,通过比较输入顺序来打破关系。让领带成为领带会更快,而且如果领带很多,这可能会带来很大的不同。基于上面和文档,尚不清楚是否可以在heapq中实现。奇怪的是,heapq不接受键,而在同一模块中从它派生的功能却接受。
PS:如果您点击第一个评论中的链接(“可能重复...”),那么还有另一种定义le的建议,这似乎是一种解决方案。

查看完整回答
反对 回复 2019-12-26
  • 3 回答
  • 0 关注
  • 834 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信