python - 平分 Python 列表并找到索引

标签 python list bisection

当我使用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/

相关文章:

python - 如何知道代码中的解释器是 Jython 还是 CPython?

python -/cs/software/anaconda3/compiler_compat/ld : cannot find -lm cannot find -lpthread cannot find -lc

python - 在python中将列表输出为 "matrix"类型格式

c# - 如何在列表中查找重复项并按出现次数对它们进行排序

python - 了解使用二分法找到解决方案的迭代次数

python - 如何在python脚本中获取exe的输出?

python - 在没有列表理解的情况下在 Python 中提取包含字符串的列表项?

c++ - 列表的迭代器错误

c++ - C++ Newton Raphson方法比对分慢吗?

algorithm - 快速 block 放置算法,需要建议吗?