Python获取list中指定元素的索引
在平时开发过程中,经常遇到需要在数据中获取特定的元素的信息,如到达⽬的地最近的车站,橱窗⾥⾯最贵的物品等等。怎么办?看下⾯⽅法⼀:利⽤数组⾃⾝的特性 list.index(target), 其中a是你的⽬标list,target是你需要的下标对应的值
1 li = [10,8,9,26,72,6,28]
2print(li.index(8))
但是,如果a中有多个8呢?
我们发现,这种⽅法仅仅能获取都第⼀个匹配的value的下标(可以试试o_o)
所以,我们看看我们的第⼆种⽅案:
⽅法⼆:利⽤enumerate函数。废话少说,看例⼦
1 >>> li = [10,8,9,26,72,6,28]
2 >>> print enumerate(li)
3 <enumerate object at 0x0000000002B9A990>
原来enumerate的输出类型是enumerate object对象,所以,我们可以如下
1  >>> li
2 [10, 8, 9, 26, 72, 6, 28]
3 >>> print(list(enumerate(li)))
4 [(0, 10), (1, 8), (2, 9), (3, 26), (4, 72), (5, 6), (6, 28)]
python index函数5 >>> print([i for i,j in enumerate(li) if j == 8])
6 [1]
再看,如果a中有多个‘8’呢?
1 >>> li.append(8)
2 >>> li.append(8)
3 >>> li
4 [10, 8, 9, 26, 72, 6, 28, 8, 8]
5 >>> print(li.index(8))
6 1
7 >>> print(list(enumerate(li)))
8 [(0, 10), (1, 8), (2, 9), (3, 26), (4, 72), (5, 6), (6, 28), (7, 8), (8, 8)]
9 >>> print([i for i,j in enumerate(li) if j == 8])
10 [1, 7, 8]
可见,list的index()⽅法是在list中到第⼀个匹配的值。
⽽enumerate是将list(当然,也包含其它类型)中的元素元组化,然后我们利⽤循环⽅法获取相应的匹配的结果。所以⽅案⼆对于重复的数值能够⼀个不漏的get出来。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。