当我使用bisect_left()
函数时,为什么我获取的不是元素的index
,而是index + 1
?
import bisect
t3 = ['carver', 'carvers', 'carves', 'carving', 'carvings']
print bisect.bisect(t3, 'carves') # 3
print bisect.bisect(t3, 'carving') # 4
print bisect.bisect(t3, 'carver') # 1
最佳答案
bisect.bisect()
是 bisect.bisect_right()
的简称, 不是 bisect.bisect_left()
。
您需要使用全名 bisect.bisect_left()
,而不是:
>>> import bisect
>>> t3 = ['carver', 'carvers', 'carves', 'carving', 'carvings']
>>> bisect.bisect(t3, 'carves')
3
>>> bisect.bisect_left(t3, 'carves')
2
>>> bisect.bisect == bisect.bisect_right
True
>>> bisect.bisect == bisect.bisect_left
False
关于python - 平分 Python 列表并找到索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19182281/