我在想如何在元组列表中使用对分 例如
[(3, 1), (2, 2), (5, 6)]
如何根据每个元组中的[1]将这个列表平分?
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,)
我插入到二等分
idx = bisect.bisect(fst, tup1[1]+tup2[1])
给了我unorderable types: int() < tuple()
在某些情况下
就够了。
因为
None
比任何整数都要小,所以这将为您提供以至少3开头的第一个元组的索引,如果所有元组都小于3,则为len(list_of_tuples)
。注意list_of_tuples
是排序的。您可以将值分隔成单独的列表。
但是,请注意,要使
bisect
工作,您的数据确实应该被排序。。。检查文档的底部:http://docs.python.org/3/library/bisect.html。如果要与元素本身以外的内容进行比较,则应创建一个单独的所谓键列表。在您的例子中,一个int列表只包含元组的[1]。使用第二个列表来计算具有等分的索引。然后使用它将元素插入到原始的(元组列表)中,并将键([1]元组)插入到新的键列表(int列表)中。
相关问题 更多 >
编程相关推荐