bisect解析

a=[1,3,5,8,11]
b=list(map(lambda x:bisect.bisect_right(a,x),[2,7,10,12]))

[1, 3, 4, 5]

bisect.bisect_right 是將[2,7,10,12]分別插入到a裏面 ,a一定是排好序的,然後返回的是插入到a裏面的索引(位置)
c=list(map(lambda x:bisect.bisect_left(a,x),[2,7,10,12]))

[1, 3, 4, 5]

分析b和c的結果可以發現,如果插入的數據 和a中的值都不一樣,那麼兩者是一樣的 
m=list(map(lambda x:bisect.bisect_right(a,x),[3,5,10,12]))

[2, 3, 4, 5]

n=list(map(lambda x:bisect.bisect_left(a,x),[3,5,10,12]))

[1, 2, 4, 5]

分析m和n的結果可以發現,如果插入的數據 和a中的值一樣的話,bisect_right會插入到 a裏面相同值的右側,bisect_left會插入到a裏面相同值的左側。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章