Python获取list特定元素下标

python获取list特定元素下标

反索引,一般情况我们通过索引获取list中的元素。
如:

1
2
3
>>> a = [2,1,3,4,6]
>>> a[3]
4

有些时候,我们已知list中的某些元素,但需要通过已知元素获得其在list中的索引位置。

方法1:利用builtin方法item.index(list)

1
2
3
>>> a = [2,1,3,4,6]
>>> a.index(3)
2

注意 如果list中存在重复值,这个方法只能获得第一个值的index。

1
2
3
>>> a = [2,1,3,2,6]
>>> a.index(2)
0

方法2:enumerate()方法

1
2
3
4
5
6
>>> a = [2,1,3,2,6]
>>> e=enumerate(a)
>>> e
<enumerate object at 0x000001A6FF29D7C0>
>>> list(e)
[(0, 2), (1, 1), (2, 3), (3, 2), (4, 6)]

不难发现,enumerate()方法包含的值的形式为

1
(index 0, value 0),(index 1, value 1),(index 2, value 2)...

可以通过利用这个信息获得元素的index

1
2
>>> print([i for i,x in enumerate(a) if x==2])
[0, 3]

参考
python 获取list特定元素下标