2013-10-04 51 views
9

當我使用bisect_left()函數時,爲什麼我沒有得到該元素的index,而是index + 1對分Python列表並找到索引

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 

回答

19

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