python 获取list某个元素下标

index() 函数用于从列表中找出某个值第一个匹配项的索引位置。

1 list.index(x, start, end)
2 #start end 指示搜索的起始和结尾位置,缺省为整个数组
  • x-- 查找的对象。
  • start-- 可选,查找的起始位置。
  • end-- 可选,查找的结束位置。

如果 list 存储了若干复杂结构的值,比如这样的一个列表:

temp = [('a', 1, 1.5),
        ('b', 2, 5.1),
        ('c', 9, 4.3)]

你想找到其中是 ('b', XX, XX) 这样的元素,其中 XX 可以为任意值。这种情况无法通过 index 函数来获得,我们可以利用 sort 的 key 参数来实现。

list.sort(或者 sorted 函数)有一个 key 参数,你可以提供一个函数来作为排序的依据。此时我们可以传入以下值:

temp.sort(key = lambda x:x[0]!='b')

随后我们会发现,所有形如 ('b', XX, XX) 的元素全部浮动到了列表的头部,此时我们访问 temp[0] 就可以获得想要查找的值了。

我们也可以写一个简单的函数:

findindex = lambda self,i,value:sorted(self,key=lambda x:x[i]!=value)[0]

那我们只需要这样调用:

>>> findindex(temp,0,'b')

就会返回它找到的第一个值:

>>> ('b',2)

posted on 2019-07-25 14:20  若流芳千古  阅读(30720)  评论(0编辑  收藏  举报

导航