首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在元组列表中使用等分?

在元组列表中使用等分?
EN

Stack Overflow用户
提问于 2014-01-03 16:18:23
回答 5查看 14.8K关注 0票数 21

例如,我正在试图找出如何在元组列表中使用二分法

代码语言:javascript
运行
复制
[(3, 1), (2, 2), (5, 6)]

如何根据每个元组中的1对此列表进行平分?

代码语言:javascript
运行
复制
list_dict [(69, 8), (70, 8), ((65, 67), 6)]
tup1,tup2 (69, 8) (70, 8)
list_dict [((65, 67), 6)]
fst, snd ((65, 67),) (6,)

我要插入到二分

代码语言:javascript
运行
复制
idx = bisect.bisect(fst, tup1[1]+tup2[1])

这给了我unorderable types: int() < tuple()

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-01-03 16:23:14

您可以将值分离成单独的列表。

代码语言:javascript
运行
复制
from bisect import bisect

data = [(3, 1), (2, 2), (5, 6)]
fst, snd = zip(*data)
idx = bisect(fst, 2)

但是请注意,要使bisect工作,您的数据确实应该被排序.

票数 11
EN

Stack Overflow用户

发布于 2015-08-03 04:05:44

在某些情况下,只是简单的

代码语言:javascript
运行
复制
bisect(list_of_tuples, (3, None))

就够了。

因为None比任何整数都要小,所以这将给出以至少3开头的第一个元组的索引,或者如果它们都小于3时则给出len(list_of_tuples)。注意,list_of_tuples是排序的。

票数 21
EN

Stack Overflow用户

发布于 2014-01-03 17:30:32

检查文档的底部:http://docs.python.org/3/library/bisect.html。如果您想要与元素本身相比,您应该创建一个单独的所谓键列表。在您的示例中,只包含一个元组的In列表。使用第二个列表来用二分法计算索引。然后使用它将元素插入原始元素(元组列表),并将键(元组中的一个)插入到新的键列表(ints列表)中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20908047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档