当前位置: 首页 > 面试题库 >

如何使heapq根据特定属性评估堆?

阎京
2023-03-14
问题内容

我希望保留一堆对象,而不仅仅是数字。它们将具有一个整数属性,堆可以根据该属性排序。在python中使用堆的最简单方法是heapq,但是在使用heapq时如何告诉它按特定属性排序?


问题答案:

heapq以相同的方式list.sort对对象进行排序,因此只需__cmp__()在类定义中定义一个方法,该方法会将自身与同一类的另一个实例进行比较:

def __cmp__(self, other):
    return cmp(self.intAttribute, other.intAttribute)

在Python 2.x中工作。

在3.x中使用:

def __lt__(self, other):
    return self.intAttribute < other.intAttribute


 类似资料:
  • 问题内容: 我正在尝试从我的自定义指令中获取一个 评估的 属性,但是我找不到正确的方法。 我已经创建了这个jsFiddle来详细说明。 我想念什么? 问题答案: 注意:我会找到更好的解决方案来更新此答案。 只要它们仍然相关,我也会保留旧答案以供将来参考。最新最好的答案是第一位的。 更好的答案: angularjs中的指令功能非常强大,但是要花些时间来了解它们背​​后的进程。 创建指令时,angul

  • 本文向大家介绍随机森林如何评估特征重要性?相关面试题,主要包含被问及随机森林如何评估特征重要性?时的应答技巧和注意事项,需要的朋友参考一下 decrease accracy 对一棵树随机改变OOB样本的第j列得到误差1,保持其他列不变,对j列进行随机上下置换,得到误差2,误差之间的差距越大说明特征越重要

  • 使用方法 性能评估模块提供了一系列用于模型性能评估的函数,这些函数在模型编译时由metrics关键字设置 性能评估函数类似与目标函数, 只不过该性能的评估结果讲不会用于训练. 可以通过字符串来使用域定义的性能评估函数 model.compile(loss='mean_squared_error', optimizer='sgd', metri

  • 使用方法 性能评估模块提供了一系列用于模型性能评估的函数,这些函数在模型编译时由metrics关键字设置 性能评估函数类似与目标函数, 只不过该性能的评估结果讲不会用于训练. 可以通过字符串来使用域定义的性能评估函数,也可以自定义一个Theano/TensorFlow函数并使用之 参数 y_true:真实标签,theano/tensorflow张量 y_pred:预测值, 与y_true形式相同的

  • 问题内容: 我正在类之间进行一些Java性能比较,并想知道是否存在某种Java Performance Framework可以简化编写性能测量代码的过程? 即,我现在正在尝试测量与使用AtomicInteger作为我的“同步器”相比,使用PseudoRandomUsingSynch.nextInt()中的“同步”方法具有什么效果。 因此,我尝试使用3个线程访问10000次同步方法循环来测量生成随机

  • 评估可能的员工,却没有得到它应得的能量。一个糟糕的雇佣,就像糟糕的婚姻,是非常糟糕的。每个人首要的一部分精力应该投入到招聘上,尽管这很少发生。 有不同的面试风格。有的是折磨人的,设计用来把候选人放在巨大压力下。这是为了这样一个有用的目的:在压力下折射出性格缺陷和弱点。候选人对待面试官不会比对待他们自己更诚实,而且,人的自欺能力是令人惊奇的。 你应当,最少,对候选人进行两个小时的与口头考核等价的技术