#列表的查询操作
#获取列表中指定元素的索引
#index()-->如果列表中存在N个相同的元素,只返回相同元素中的第一个索引
#       -->如果查询的元素在列表中不存在,则会抛出Valueerror
#       -->还可以在指定的索引start和stop之间进行查找元素的索引,不包括stop
#获取列表中的单个元素
#正向索引从0到N-1  举例lst[0]
#逆向索引从-1到-N  举例lst[-N]
#指定索引不存在,抛出IndexError
###############################################
lst=['hello','world',98,'hello']
print(lst.index('hello'))#如果列表中存在N个相同的元素,只返回相同元素中的第一个索引
'''print(lst.index('Python'))#如果查询的元素在列表中不存在,则会抛出Valueerror'''
print(lst.index('hello',1,4))#在索引1到3之间查找hello
#################################################
lst=['hello','world',98,'hello','world','1.7']
print(lst[2])#获取索引为2的元素
print(lst[-3])#获取索引为-3的元素
'''print(lst[10])#指定索引不存在,抛出IndexError'''
######################################################
#获取列表中的多个元素
#语法格式
#列表名[star:stop:step]
#切片操作-->1.切片的结果:一个新的列表对象,是原列表片段的拷贝 2.切片的范围:索引[start,stop)左闭右开
#3.step默认为1:简写为[start:stop]
#4.step为正数:    -->(1)[:stop:step]切片的第一个元素默认是列表的第一个元素
#                 -->(2)[start::step]切片的最后一个元素默认是列表的最后一个元素
#          -->(3)[::step]切片的第一个元素默认是列表的第一个元素,片的最后一个元素默认是列表的最后一个元素
#                 -->(4)[star:stop:step]从start开始往后计算切片
#5.step为负数:-->(1)[:stop:step]切片的第一个元素默认是列表的最后一个元素
#            -->(2)[start::step]切片的最后一个元素默认是列表的第一个元素
#            -->(3)[star:stop:step]从start开始往前计算切片
#############################################################################
lst=[10,20,30,40,50,60,70,80]
print(lst[1:6:1])#索引1到5
print('原列表',id(lst))
lst2=lst[1:6:1]
print('切的片段',id(lst2))
print(lst[1:6])#默认步长为1
print(lst[1:6:])#冒号后面不写,也代表步长为1
print(lst[1:6:2])#从start开始往后计算切片
print(lst[:6:2])#索引0,0+2,,2+2  切片的第一个元素默认是列表的第一个元素
print(lst[1::2])#切片的最后一个元素默认是列表的最后一个元素
print(lst[::1])
print(lst[::2])
##############################################################################
#步长为负数
print(lst[::-1])#切片的第一个元素默认是列表的最后一个元素,切片的最后一个元素默认是列表的第一个元素
print(lst[7::-1])#切片的最后一个元素默认是列表的第一个元素
print(lst[::-2])#
print(lst[6:0:-2])#-->(3)[star:stop:step]从start开始往前计算切片