问题标签 [bisect]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
198 浏览

python - 我可以使用 bisect 打印一行的内容吗?

我有一个文件,其中每一行都按字母顺序排列。该文件是 12Gb,这意味着我不能简单地逐行读取它。数据如下所示:

每行开头的单词都是唯一的。每行中的单词和数字由制表符分隔。我希望能够在文件中查询特定关键字。例如,如果我查询“fox”,程序应该返回“fox 3 5 0 0 1”。

似乎 bisect 模块是一个很好的候选者:https ://docs.python.org/3.0/library/bisect.html

我发现了一篇使用 bisect 找出关键字的行号的帖子:如何在文本文件上执行二进制搜索以在 python 中搜索关键字?

这是代码的样子:

但是,我无法弄清楚如何实际打印该行的内容。我至少应该在某处添加一个 read 语句,但我不知道在哪里。

是否可以使用 bisect 模块打印行的内容?

0 投票
2 回答
362 浏览

git - 如何使用 git 工具查找源中的错误

我在本地(在我自己的分支中)开发我的应用程序,但我只能在远程开发服务器上测试它,方法是推送到服务器上的 git repo(我自己的分支),然后在那里测试工作副本。

由于我无法找出我的网络应用程序崩溃的原因,我想找到最后一个“良好”状态以了解原因。我考虑过使用git bisect. 但它只改变本地仓库的状态,而不是原点,如果它有效,我无法在本地测试。那么我应该怎么做才能轻松检查远程分支上的不同提交(不会在提交历史中造成太多混乱)?

0 投票
5 回答
26543 浏览

python - 如何使用 bisect.insort_left 键?

文档缺少示例...您如何bisect.insort_left)_根据密钥使用?

尝试基于键插入。

将插入放在data[0].

从文档...

bisect.insort_left(a, x, lo=0, hi=len(a)排序顺序)

    插入x。这相当于假设a已经排序。请记住,O(log n) 搜索主要由缓慢的 O(n) 插入步骤支配。a.insert(bisect.bisect_left(a, x, lo, hi), x)

示例用法:

我想('brown', 7)('red', 5)排序列表中data使用bisect.insort_left. 现在bisect.insort_left(data, ('brown', 7))放在...因为我没有使用键进行插入...文档没有显示使用键进行插入('brown', 7)data[0]

0 投票
1 回答
73 浏览

python - 为什么这个自定义平分函数在无限循环中?

我有一个很长的脚本,我最初在其中使用 bisect 。这是它的一部分(工作得非常好并且符合预期):

但是,现在我需要一个反向平分(降序)。谢天谢地,我找到了一个非常好的解决方案

创建反向二等分的代码如下:

当我用简单的计算对其进行测试时,它工作得很好。但是,当我将其插入脚本时,它会导致脚本在运行时冻结。我不知道为什么会发生这种情况,因为我使用与以前相同的逻辑,bisect.bisect并且效果很好。

这是现在不起作用的:

出于某种原因,使用该函数似乎会无限循环portfolios.insert(position, add_sharpe)

输出:

0 投票
0 回答
274 浏览

mercurial - Mercurial Bisect:中止:不一致的状态,是好是坏

我正在处理的代码库中引入了一个错误,我正在尝试查看是哪个 changset 引入了它。这是我到目前为止所做的:

克隆发布分支

将提示标记为坏

标记了我知道的最后一个工作变更集工作良好

这个错误是什么意思?我不太确定我明白它在说什么。如果我再次运行该命令,我会收到一条不同的消息:

我只标记为好,怎么可能是坏的呢?

0 投票
1 回答
3056 浏览

python - 覆盖类中的排序属性,python

我想使用 bisect (如此处所示,在第二个答案中:Does python have a sorted list?),但我没有使用数字列表,而是有一个对象列表。具体来说,来自此类的对象:https ://networkx.github.io/documentation/latest/_modules/networkx/classes/graph.html

我希望列表保持图表按节点数排序。如果我将这些图推送到列表中,它看起来像是以任意方式插入的,(如果我多次运行它,它会在运行之间发生变化)。

是否有每个类可以定义的“排序”函数,在应用排序时将使用它(如其他语言中的运算符覆盖)?

如果有其他方法可以做到这一点,那就太好了。

谢谢

0 投票
1 回答
358 浏览

mercurial - 如何查看剩余的变更集以检查 hg bisect?

当我运行 hg bisect 时,有时我想“向前看”剩余的内容,看看是否有任何明显的罪魁祸首我可以在相当慢的二分测试运行时检查。

所以鉴于我已经跑了

如何查看剩余的 8 个变更集?

0 投票
1 回答
75 浏览

python - Python:函数在 for 循环中没有收到值

我在 for 循环中使用 scipy.optimize 包中的二分法。这个想法是用二分法为“eps_komp”向量中的每个元素(值)获得一个“sig”值。我已经编码了这么多:

现在,如果我将 eps_f(j) 中“j”的值更改为 0:

它有效,因此它适用于我手动插入的所有其他值,但如果我保持它像在 for 循环中一样,“j”值不会自动改变,我得到一个错误:

f(a) 和 f(b) 必须有不同的符号

有谁知道问题是什么以及如何解决?

问候,

大号

PS我昨天确实发布了关于这个问题的另一个主题,但我对这个问题不是很具体并且得到了负面反馈。但是,我今天确实需要解决这个问题,所以我不得不再次发布它,但是我确实设法在代码方面做得比我在之前的帖子中所做的更进一步,所以它不是重新发布......

0 投票
1 回答
166 浏览

python - 在列表中查找小于或等于值的项目

我有一个包含多列的排序 csv 文件,我想返回第 1 列中某个项目的值或索引。这个 csv 文件有大约 300.000 到 400.000 个值,所以我试图避免任何min函数,因为它可能需要很长,我需要在一秒钟内获得价值。

所以我正在做的是通过以下方式将 column1 的条目添加到列表中:

现在是棘手的部分,因为我找不到合适的函数和/或正在寻找更低或相等值的示例。我尝试编辑我在 stackoverflow.com 上找到的这个示例

这个例子给出了最接近的值,更低、等于或更大。但我无法以我想要的方式改变它。

作为一个数字的例子,我正在寻找的是:

因此,在查找 value1 时,它应该返回return1=124or 索引。当值不包括在内时 value2 它应该返回低于搜索值的最大值。return2=125即使较高的值 128 更接近。

我尝试使用 bisect 模块,但我失败了。任何小费表示赞赏。

问候

0 投票
1 回答
84 浏览

python - Python中的二分法或哈希表方法

我想加快我在 python 中的函数的执行时间。我读到这样做的一个好方法是使用 Bisection 或 Hashtable 方法。你知道我怎么能用这个功能做到这一点吗?

非常感谢您对我的帮助;)