Python获取list中指定元素索引的两种方法

在平时开发过程中,经常遇到需要在数据中获取特定的元素的信息,如到达目的地最近的车站,橱窗里面最贵的物品等等。怎么办?看下面

方法一: 利用数组自身的特性 list.index(target), 其中a是你的目标list,target是你需要的下标对应的值

li = [10,8,9,26,72,6,28]
print(li.index(8))

但是,如果a中有多个8呢?
我们发现,这种方法仅仅能获取都第一个匹配的value的下标(可以试试o_o)

所以,我们看看我们的第二种方案:

方法二: 利用enumerate函数。

>>> li = [10,8,9,26,72,6,28]
>>> print (enumerate(li))
<enumerate object at 0x0000000002B9A990>

原来enumerate的输出类型是enumerate object对象,所以,我们可以如下

>>> li
[10, 8, 9, 26, 72, 6, 28]
>>> print(list(enumerate(li)))
[(0, 10), (1, 8), (2, 9), (3, 26), (4, 72), (5, 6), (6, 28)]
>>> print([i for i,j in enumerate(li) if j == 8])
[1]

再看,如果a中有多个‘8’呢?

>>> li.append(8)
>>> li.append(8)
>>> li
[10, 8, 9, 26, 72, 6, 28, 8, 8]
>>> print(li.index(8))
1
#学习中遇到问题没人解答?小编创建了一个Python学习交流群:531509025
>>> print(list(enumerate(li)))
[(0, 10), (1, 8), (2, 9), (3, 26), (4, 72), (5, 6), (6, 28), (7, 8), (8, 8)]
>>> print([i for i,j in enumerate(li) if j == 8])
[1, 7, 8]

可见,list的index()方法是在list中找到第一个匹配的值。

而enumerate是将list(当然,也包含其它类型)中的元素元组化,然后我们利用循环方法获取相应的匹配的结果。所以方案二对于重复的数值能够一个不漏的get出来。

posted @   python学习者0  阅读(1625)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示