问题标签 [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 投票
2 回答
93 浏览

python-3.x - 在 python 中使用 bisect 和元组

我试图了解在 python 的 bisect 模块中使用 bisect 函数以及如何将它与元组一起使用。我已经看到它需要一个列表和一个值来找到放置值的索引。在我的情况下,该值是一个元组。这是来自 leetcode 981 https://leetcode.com/problems/time-based-key-value-store/。A 是一个元组列表,元组将包含 (int,string) 作为其数据。

我了解他们为解决问题而尝试做的事情。我只是想了解为什么使用 chr(127)。我尝试使用 None 但它给出了一个错误。我猜它总是会采用元组中的第一个 int 值,因为 chr(127) 总是不合格,因为 bisect 接受。但我无法找到正确的原因。IDLE 也将 chr(127) 显示为 \x7f 并发现它是一个非 ascii 字符。

0 投票
0 回答
30 浏览

python - 在python中查找散列元组列表中元素的快速方法

我正在尝试有效地解决以下问题:

给定以下课程

因此,Obj(t1=1, t2=2) == Obj(t1=2, t2=1)

因此,给定一组Objass = {Obj(1, 2), Obj(1, 3), Obj(4, 1), Obj(9, 5)}我如何找到所有具有t1=1OR的对象t2=1?所以从上面的集合中我只会得到[Obj(1, 2), Obj(1, 3), Obj(4, 1)]

到目前为止我所尝试的:我目前的方法是对集合进行两次排序。一旦与s_t1 = sorted(s, lambda x: x.t1)s_t2 = sorted(s, lambda x: x.t2)

sortedcontainers使用方便,但也可以使用古典bisect

但是,这感觉效率低下,因为我需要排序两次。因此,我想知道什么是更好更快(!)的方法来做到这一点。特别是,在搜索列表时如何更好地利用这一事实Obj(t1=1, t2=2) == Obj(t1=2, t2=1)

0 投票
1 回答
38 浏览

python - Python 查找 - 映射动态范围(快速)

这是我之前发布的一个问题的扩展:Python Sum lookup dynamic array table with df column

我目前正在研究一种有效地将决策变量映射到数据框的方法。主 DF 和查找表的长度将是动态的(分别为 +15,000 行和 +20 行)。因此希望不要循环执行此操作,但很高兴听到建议。

DF (DF1) 大致如下所示,我想在其中查找/搜索决策。

在单独的 DF (DF0) 上找到决策值。

例如:第一个 DF1["ValuesWhereXYcomefrom"] 值为 6.915,在键表上介于 3.8>=(value)>7.4 之间,因此对应的值 DF0["Decision"] 为 -1。然后重复该过程,直到每一行都映射到一个决策。

我正在考虑使用 python bisect 库,但还没有采用任何可行的解决方案并且还使用循环。现在我想知道我是否在错误地看待问题,因为映射和循环 15k 行非常耗时。

示例主要数据 (DF1):

时间 值0 价值1 价值2 XY 来自哪里的价值观 Value_toSum 决策图
1 41.43 6.579482077 0.00531021
2 41.650002 6.756817908 46.72466411 6.915187703 0.001200456 -1
3 41.700001 6.221966706 11.64727001 1.871959552 0.000959257 -1
4 41.740002 6.230847055 46.92753343 7.531485368 0.006228989 1
5 42 6.637399856 8.031374656 1.210018204 0.010238095 -1
6 42.43 7.484894608 16.24547568 2.170434793 -0.007777563 -1
7 42.099998 7.595291765 38.73871244 5.100358702 0.003562993 -1
8 42.25 7.567457423 37.07538953 4.899319211 0.01088755 -1
9 42.709999 8.234795546 64.27986403 7.805884636 0.005151042 1
10 42.93 8.369526407 24.72700129 2.954408659 -0.003028209 -1
11 42.799999 8.146653099 61.52243361 7.55186613 0 1

示例键表 (DF0):

价值X 价值Y 决定
0.203627201 3.803627201 0.040294925 -1
3.803627201 7.403627201 0.031630668 -1
7.403627201 11.0036272 0.011841521 1
0 投票
0 回答
39 浏览

python - 如何消除Python根函数中的错误,如果给定价格,想找到债券的价差?

我是 Python 新手,正在尝试编写代码,我使用给定的价差计算了债券价格,现在如果我要反算并在给出债券价格的情况下找到价差,我该怎么做?我从这里获取了债券定价的代码。请帮忙

代码

错误

0 投票
1 回答
95 浏览

git - 内核:平分合并提交以查找非合并优先错误

我将内核中的问题一分为二,第一个错误提交合并提交:

2b90506a8186的父母(都很好):

v5.12 -rc2不错

我需要做第二个二等分来找到实际的第一个非合并错误提交(即028a1e968435..2b90506a8186 - 4885 提交或01d713689441..2b90506a8186 - 46 提交之一)。

我记得以前在类似的情况下,我签出到其中一个父级(第一个分支)并在第一个分支的顶部逐个应用来自另一个父级(第二个分支)的所有提交。有了这个特殊的分支,我需要解决一些冲突,因为历史是线性的,所以我可以重新设置基础。

但我不记得我是如何从另一个父母那里得到提交列表的。这可能很简单,用 git log 创建它的父级--first-parent

但是对于这种情况,我无法生成列表,这可能是由于父母也是合并提交的事实。

我试图阅读各种资料,但没有运气:

更新我不相信所有设备都有内核回归,只是我的特定 arm64 设备的设备树有问题。找到有问题的提交可以帮助我暂时恢复有问题的提交,直到我找到需要在设备树中为我的设备修复的内容。

0 投票
1 回答
32 浏览

git - 以前的 git bisect “会话”的状态是否存储在 git 的某个地方?

前段时间我使用 git bisect 来识别一个错误的提交,我设法做到了。然后我关闭了 git bisect “会话” git bisect reset。但是,我识别提交是好还是坏的过程相当复杂,我可能犯了一个错误。

我的问题是我是否可以“重新加载”关闭的 git bisect 会话以手动重新测试我在此过程中评估的提交的好/坏状态。谢谢你的帮助。

0 投票
1 回答
36 浏览

git - git bisect 如何告诉我哪个合并破坏了主分支?

Git bisect 是分支感知的,所以它通常会很高兴地冒险进入某个分支来测试这些提交。我对分支是否包含一些错误的提交不感兴趣。我感兴趣的是合并一个特性是否会破坏某些东西,基本上就像我将整个分支压缩成一个提交一样。

有没有办法可以指示 git bisect 留在给定的分支(右侧,左侧),以便我可以解决这个问题?

我看到的障碍是如果倒退要遵循哪个分支,但也许有一些处理方法?

0 投票
1 回答
51 浏览

python - 我想使用 python 将数组中的所有数字更改为 ABCD 评分系统

我想将数组中的所有数字更改为 ABCD 评分系统。我有 100 X 1 的分数数组,我的数组放在 total_score 下。我尝试使用

我也尝试过使用

两者都不起作用。也很少有建议,但似乎这些建议都不适用于 pandas 数组

0 投票
1 回答
66 浏览

python - '只有长度为 1 的数组可以转换为 Python 标量' 错误

我有这样的 Python 代码

我收到了错误消息,例如

请帮我解决,谢谢!

0 投票
0 回答
42 浏览

python - 尝试使用 Bisect 搜索找到最佳储蓄率

我试图找到一个储蓄率(rate_approx在我的代码中),这将导致current_savings超过 36 个月的储蓄(在代码中)在 100 美元的首付(down_payment在代码中)以内。

for每次在循环内运行while循环以表示current_savings36 个月期间的增长。然后,一旦根据它是否太高或太低来调整储蓄率,我希望它保存一个新的savings_rate并在 36 个月期间尝试。所以我重置current_savings以确保它不是从current_savings之前的for循环运行开始,然后再试一次。

为什么程序会继续输出越来越小的储蓄率,而最终current_savings价值却越来越大?