问题标签 [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.
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 字符。
python - 在python中查找散列元组列表中元素的快速方法
我正在尝试有效地解决以下问题:
给定以下课程
因此,Obj(t1=1, t2=2) == Obj(t1=2, t2=1)
因此,给定一组Obj
ass = {Obj(1, 2), Obj(1, 3), Obj(4, 1), Obj(9, 5)}
我如何找到所有具有t1=1
OR的对象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)
?
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 |
git - 内核:平分合并提交以查找非合并优先错误
我将内核中的问题一分为二,第一个错误提交是合并提交:
2b90506a8186的父母(都很好):
v5.12 -rc2也不错。
我需要做第二个二等分来找到实际的第一个非合并错误提交(即028a1e968435..2b90506a8186 - 4885 提交或01d713689441..2b90506a8186 - 46 提交之一)。
我记得以前在类似的情况下,我签出到其中一个父级(第一个分支)并在第一个分支的顶部逐个应用来自另一个父级(第二个分支)的所有提交。有了这个特殊的分支,我需要解决一些冲突,因为历史是线性的,所以我可以重新设置基础。
但我不记得我是如何从另一个父母那里得到提交列表的。这可能很简单,用 git log 创建它的父级--first-parent
。
但是对于这种情况,我无法生成列表,这可能是由于父母也是合并提交的事实。
我试图阅读各种资料,但没有运气:
- https://github.com/git/git/blob/master/Documentation/howto/revert-a-faulty-merge.txt
- https://github.com/git/git/blob/master/Documentation/git-bisect.txt
- https://github.com/git/git/blob/master/Documentation/git-bisect-lk2009.txt
- https://github.com/git/git/blob/master/Documentation/howto/revert-a-faulty-merge.txt
更新我不相信所有设备都有内核回归,只是我的特定 arm64 设备的设备树有问题。找到有问题的提交可以帮助我暂时恢复有问题的提交,直到我找到需要在设备树中为我的设备修复的内容。
git - 以前的 git bisect “会话”的状态是否存储在 git 的某个地方?
前段时间我使用 git bisect 来识别一个错误的提交,我设法做到了。然后我关闭了 git bisect “会话” git bisect reset
。但是,我识别提交是好还是坏的过程相当复杂,我可能犯了一个错误。
我的问题是我是否可以“重新加载”关闭的 git bisect 会话以手动重新测试我在此过程中评估的提交的好/坏状态。谢谢你的帮助。
git - git bisect 如何告诉我哪个合并破坏了主分支?
Git bisect 是分支感知的,所以它通常会很高兴地冒险进入某个分支来测试这些提交。我对分支是否包含一些错误的提交不感兴趣。我感兴趣的是合并一个特性是否会破坏某些东西,基本上就像我将整个分支压缩成一个提交一样。
有没有办法可以指示 git bisect 留在给定的分支(右侧,左侧),以便我可以解决这个问题?
我看到的障碍是如果倒退要遵循哪个分支,但也许有一些处理方法?
python - 我想使用 python 将数组中的所有数字更改为 ABCD 评分系统
我想将数组中的所有数字更改为 ABCD 评分系统。我有 100 X 1 的分数数组,我的数组放在 total_score 下。我尝试使用
我也尝试过使用
两者都不起作用。也很少有建议,但似乎这些建议都不适用于 pandas 数组
python - '只有长度为 1 的数组可以转换为 Python 标量' 错误
我有这样的 Python 代码
我收到了错误消息,例如
请帮我解决,谢谢!
python - 尝试使用 Bisect 搜索找到最佳储蓄率
我试图找到一个储蓄率(rate_approx
在我的代码中),这将导致current_savings
超过 36 个月的储蓄(在代码中)在 100 美元的首付(down_payment
在代码中)以内。
我for
每次在循环内运行while
循环以表示current_savings
36 个月期间的增长。然后,一旦根据它是否太高或太低来调整储蓄率,我希望它保存一个新的savings_rate
并在 36 个月期间尝试。所以我重置current_savings
以确保它不是从current_savings
之前的for
循环运行开始,然后再试一次。
为什么程序会继续输出越来越小的储蓄率,而最终current_savings
价值却越来越大?