如何在python列表中的范围内获取项目的索引?

时间:2019-09-21 19:26:23

标签: python

(重新编辑) 例如,我有一个类似列表的数组:

l = [0.3, 2.3, 3.1, 4.5] # value can be any numeric type

然后给定数字1.2(在0.3 and 2.3之间),应返回索引1,并给定数字3.3,在{{1}之间},应该返回索引3.1 and 4.5,对于小于3的值,应该返回索引0.3,等等。

基本上,对于任何输入值,都取决于它所属的bin,并返回该bin的索引。

我希望不要使用0语句,因为列表中的项目数量可能很大。

我想应该在某个地方问这个问题,但是我找不到它。

(顺便说一句,实际上我记得if else中有一个内置函数可以解决问题,但是我再也回想不起来了……)

3 个答案:

答案 0 :(得分:1)

>>> l.index(round(1.2))
0
>>> l.index(round(3.3))
2

假定正常的舍入规则。

答案 1 :(得分:0)

也可以使用数学库中的下限函数。

>>> l.index(floor(1.2))
0

答案 2 :(得分:0)

其他答案假设我们已订购第1步数组。在一般形式下,您可以使用以下内容:

# for 1.5
l.index(max(x for x in l if x < 1.5))
# output: 0
# for 2.5
l.index(max(x for x in l if x < 2.5))
# output: 1

警告:我认为数据中没有重复数据并且已对其进行排序