从某一点开始的Python列表索引

时间:2018-01-20 23:28:47

标签: python list indexing

列表

  

a = [1,2,5,3,7,2,3,1,7,4,2,3,4,2,1]

我知道如果我这样做

  

a.index(2)
  1

但是我想知道从某一点找到数字的最简洁方法是什么。

  

a.index(2,来自第2点)
  5

2 个答案:

答案 0 :(得分:4)

list.index [doc]函数有额外的参数:

list.index(x[, start[, end]])
在值为x的第一个项的列表中返回从零开始的索引。如果没有这样的项目,则提高ValueError

可选参数startend被解释为切片表示法,用于将搜索限制为列表的特定子序列。返回的索引是相对于完整序列的开头而不是start参数计算的。

所以你可以使用:

a.index(2, 2)

从索引2开始搜索(包括索引2)。

答案 1 :(得分:2)

通过list.index的实施,你可以通过你的“点”来实现你想要的输出:

a= [1,2,5,3,7,2,3,1,7,4,2,3,4,2,1]
print(a.index(2, 2))

输出:

5

然而,另一种可能的解决方案是构建一个字典:

val = 2
a= [1,2,5,3,7,2,3,1,7,4,2,3,4,2,1]
locations = dict(enumerate([i for i, c in enumerate(a) if c == val], start=1))
print(locations.get(2, False))

输出:

5