heapq.merge() 迭代器遍历的项目比列表中的多

鲁姆兹

按照heapq.merge()文档- 我得到了非常奇怪的结果,并且找不到我做错了什么......设置如下:

  1. 我正在使用 heapq.merge() 对多个列表进行排序。用2~8个列表迭代器测试,结果完全一样。列表包含 10K ~ 25K 项。
  2. 列表元素本身实现了对列表进行排序所需的所有内容(__ lt__(), __ eq__(), ...)。
  3. 我测试了在对列表本身进行排序时以及在调用 heapq.merge() 方法时调用了这些特殊的排序方法。
  4. 我确保列表不包含任何重复条目。甚至没有交叉列表。使用我附加到每个元素的简单运行数字,并用于比较。

输出:在迭代 2 个列表时,每个列表有 25K 项,我得到了 100K 结果。投入的金额翻倍。

我相信我遵循了这里的所有要求。在将列表输入 heapq.merge 之前,我是否应该对其进行堆放?文档中没有这么说,也不清楚应该/是否应该这样做。

有什么线索吗?

鲁姆兹

好的,只是为了澄清这里发生的事情:我的错误是(粗心地......)路径列表迭代器,而不是列表本身。奇怪的是,函数/编译器并没有拒绝它!一旦我自己传递了列表,该功能就可以正常工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

heapq.merge默认密钥?

来自分类Dev

Python,heapq,如何高效修改heapq中的最小元素?

来自分类Dev

python的heapq.merge使用的算法是什么?

来自分类Dev

heapq.merge()函数可列出已排序的文件

来自分类Dev

python heapq排序列表错误?

来自分类Dev

Python线程中的heapq安全吗?

来自分类Dev

从python中的'heapq'和'deque'继承吗?

来自分类Dev

为什么使用heapq.heapify创建的堆与通过迭代heapq.heappush创建的堆不同

来自分类Dev

不使用heapq和任何其他使用python的库的K-way-merge

来自分类Dev

如何确定Python的heapq库管理的项目顺序?

来自分类Dev

如何确定Python的heapq库管理的项目顺序?

来自分类Dev

Python heapq vs预排序列表的排序速度

来自分类Dev

为什么heapq使用列表的最前面?

来自分类Dev

TypeError:不可排序的类型:heapq中的dict()<dict()

来自分类Dev

python中的heapq和PriorityQueue有什么区别?

来自分类Dev

heapq库中的函数的时间复杂度是多少

来自分类Dev

迭代器中的Java 8 Merge映射

来自分类Dev

python中的heapq模块可以使用哪些类型的堆元素?

来自分类常见问题

什么是Python的heapq模块?

来自分类Dev

Python heapq实现

来自分类Dev

如何使用heapq模块

来自分类Dev

如果基础数据结构是一个列表,heapq的push操作如何能达到O(log n)时间?

来自分类Dev

Python heapq:拆分并合并为有序的heapq

来自分类Dev

python heapq源代码_siftdown

来自分类Dev

heapq.nlargest如何工作?

来自分类Dev

检查heapq是否包含值

来自分类Dev

heapq nsmallest dictionary key sorted

来自分类Dev

检查heapq是否包含值

来自分类Dev

merge_sort()中的merge()如何工作?

Related 相关文章

热门标签

归档