Python List index()方法
创新互联公司长期为成百上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为伊通企业提供专业的成都做网站、成都网站制作、成都外贸网站建设,伊通网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。
描述
index() 函数用于从列表中找出某个值第一个匹配项的索引位置。
语法
list.index(obj)
参数
obj -- 查找的对象。
返回值
该方法返回查找对象的索引位置,如果没有找到对象则抛出异常。
实例
以下实例展示了 index()函数的使用方法:
#!/usr/bin/python
aList = [123, 'xyz', 'zara', 'abc'];
print "Index for xyz : ", aList.index( 'xyz' ) ;
print "Index for zara : ", aList.index( 'zara' ) ;
#以上实例输出结果如下:
Index for xyz : 1
Index for zara : 2
如果 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)
查看python内置函数的方法:1、打开Python IDLE编辑器;2、输入" dir(__builtins__)"命令,按下回车键(Enter)得到Python全部内置变量和函数。
如何查看 Python 全部内置变量和内置函数?
1 如图,打开 Python IDLE,我用的 是 Python 3.7 ,界面有个性定制。你的版本不同,界面有差异,但是操作方法应该是一样的。
2 输入 dir(__builtins__)
按下回车键(Enter)。
3 也可以:
import builtins
dir(builtins)
按下回车键(Enter)。
得到的结果和 dir(__builtins__) 是一样的。
4 那么这返回的一大堆到底是什么东西?
可以看到,返回的结果是以 [ 开头以 ] 结尾,说明是个列表,我们看看这列表里一共有多少个元素?
输入:
len(dir(__builtins__))
得到一个数字,154 ,说明当前版本的 Python 内置的常量和函数总数是 154 。
5 我们再重新输出一下这个列表,逐个打印出来,更好看一点。
for item in dir(__builtins__):
print(item)
按下两次回车键(Enter)。按照默认的字母顺序,先是大写字母 A-Z,然后是下划线(_)开头的,然后是小写字母 a-z ,为什么是这个顺序?因为按照 ASCII 码表,表示小写字母的数字比表示大写字母的数字要大,而表示下划线(_)的数字居中,所以如此。
6 print() 就是 Python 3 的默认函数。我们试试:
print('Hello World')
builtins.print('Hello World')
__builtins__.print('Hello World')
运行结果如下,可以看到,结果是一样的。
dir()本身就是 Python 的内置函数,利用它,我们可以查看对象的全部方法和属性,对于掌控全局,了解全貌很有用。
课程推荐:Python快速教程之从入门到精通
def prime(n):
if n=2:
return []
result=[False,False]+[True]*(n-2)
for i in range(len(result)):
if result[i]==True:
for j in range(2*i,len(result),i):
result[j]=False
return [i for i in range(len(result)) if result[i]==True]
def bi_search(prime,primelist,start,end):
if startend :
return -1
mid=(start+end)//2
if primelist[mid]==prime:
return mid
elif primelist[mid]prime:
end=mid-1
else:
start=mid+1
return bi_search(prime,primelist,start,end)
if __name__=='__main__':
n=int(raw_input())
primelist=prime(n)
num=raw_input()
while num:
num=int(num)
index=bi_search(num,primelist,0,len(primelist)-1)
print(index)
num=raw_input()
1、方法一: 利用数组自身的特性 a.index(target), 其中a是目标list,target是需要的下标对应的值。代码如下:
可知索引为2。但是如果a中有多个76元素,这种方法仅仅能获取都第一个匹配的value的下标索引。
2、方法二:利用enumerate函数。
代码如下:
运行结果:
扩展资料:
python通过索引的操作(Python包含6种内建序列:列表、元组、字符串、Unicode字符串、buffer对象、xrange对象):
1、索引:
负数索引与正数索引之间存在一个规律: 当正数索引+负数索引的绝对值=元素的个数,它们所指的是同一个元素。
2、分片:
分片用于截取某个范围内的元素,通过:来指定起始区间(左闭右开区间,包含左侧索引值对应的元素,但不包含右测索引值对应的元素)。
分片包括起始索引对应的元素,但不包括终止索引对应的元素,索引为正值时可以发生越界但只会取到最后一个元素。如果索引值为负值,则表示从最右边元素开始,此时需避免索引越界。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款