pymongo查询列表元素_Python入门到精通-列表-2-查操作

a598fecb6feff4bdd134c1dd9e98391c.png

列表中的每个元素都有两个整数类型的索引:

1.第一个元素索引是0,后面的元素索引依次递增1;

2.最后一个元素索引是-1,前面元素索引依次递减1;

如下图:

940a59aadb56de16948b2216247b3127.png

获得列表中指定元素的索引:

(1)如果列表中想要获得指定元素的索引,可以调用方法index,该方法只返回两个整数索引中大于0的索引值。

#代码演示L = [5, 3, 7, 9, 2, 1, 7, 6] #创建变量名为L的列表print(L.index(9)) #3 查找L列表中 元素9的索引为3

(2)如果列表中存在多个指定元素,方法index只返回第1个指定元素的索引值。

#代码演示L = [5, 3, 7, 9, 2, 1, 7, 6] #创建变量名为L的列表print(L.index(7)) #2 L列表中有2个为7的元素,index方法只返回了列表中第一个7的元素索引值2.

(3)如果列表中不存在指定的元素,方法index会报错:ValueError: 8 is not in list

#代码演示L = [5, 3, 7, 9, 2, 1, 7, 6] #创建变量名为L的列表pint(L.index(8)) #ValueError: 8 is not in list

(4)调用方法index时还可以指定索引start参数和stop参数(可以只指定start参数,不能只指定stop参数)

#代码演示L = [5, 3, 7, 9, 2, 1, 7, 6] #创建变量名为L的列表 print(L.index(7, 3)) #6 在L列表中指定索引值为3开始后的列表中查询7的索引值。 print(L.index(7, 3, 5)) #ValueError: 7 is not in list 在L列表中指定索引值为3开始到5的列表查询没有7元素

使用索引获得列表中的元素,一次只获得一个元素

#代码演示L = [5, 3, 9, 4, 0, 6, 8, 1, 7, 2] #创建一个变量名为L的列表 >>>print(L[0]) #5 获得列表中元素5 >>> print(L[5]) #6 获得列表中元素6 >>> print(L[-4]) #8 获得列表中元素8 >>> print(L[8]) #7 获得列表中元素7 >>> print(L[-1]) #2 获得列表中元素 2

如果指定索引不在列表中,会抛出IndexError

#代码演示L = [5, 3, 9, 4, 0, 6, 8, 1, 7, 2] #创建一个变量名为L的列表 >>>print(L[10]) #IndexError: list index out of range 报错了 

使用切片获得列表中的元素,一次可以获得多个元素。切片语法格式:[start:stop:step]

  1. 切片得到结果仍是列表,是原始列表的片段的一份拷贝。
  2. 切片得到的结果不包含索引stop参数。
  3. 如果不指定step参数,其默认值是1,此时语法格式可以简化为:[start:stop].
  4. 当step参数为正数时:
  5. 如果不指定start参数,切片的第一个元素默认是列表的第一个元素。
  6. 如果不指定stop参数,切片的最后一个元素默认是列表的最后一个元素。
  7. 从索引start参数往后计算切片。
  8. 当step参数为负数时:
  9. 如果不指定start参数,切片的第一个元素默认是列表的最后一个元素。
  10. 如果不指定stop参数,切片最后的一个元素默认是列表的第一个元素。
  11. 从索引sart参数往前计算切片。
 #代码演示 L = [5, 3, 9, 4, 0, 6, 8, 1, 7, 2] #创建一个变量名为L的列表 >>> print(L[1:7:2]) #[3, 4, 6]>>> print(L[1:7]) #[3, 9, 4, 0, 6, 8]>>> print(L[::]) #[5, 3, 9, 4, 0, 6, 8, 1, 7, 2] 不指定start参数,stop参数,step参数,切片结果默认取整个列表>>> print(L[::-1]) #[2, 7, 1, 8, 6, 0, 4, 9, 3, 5] 不指定start参数及stop参数,指定step参数为-1 切片结果取整个列表逆序>>> print(L[6:0: -2]) #[8, 0, 9]>>> print(L[0:6:-2]) #[]>>> print(L[:5:-2]) #[2, 1]

6.切片操作允许越界:

#代码演示 L = [5, 3, 9, 4, 0, 6, 8, 1, 7, 2] #创建一个变量名为L的列表 print(L[:100]) #[5, 3, 9, 4, 0, 6, 8, 1, 7, 2] 切片越界,默认取整表 print(L[-100:]) #[5, 3, 9, 4, 0, 6, 8, 1, 7, 2] 切片越界,默认取整表

使用内置函数slice(类slice的构造方法)创建slice类型对象。调用slice内置函数有三种方式:

  1. slice(stop)
  2. slice(start, stop)
  3. slice(start, stop, step)
  4. slice函数的start参数,stop参数,step参数默认值都是None
  5. [slice(start, stop, step)] 与切片方法[start:stop:step]是等价的。
#举例比较slice方法及切片方法L = [5, 3, 9, 4, 0, 6, 8, 1, 7, 2] #创建一个变量名为L的列表>>> print(L[1:7:2]) #[3, 4, 6]>>> print(L[slice(1,7,2)]) #[3, 4, 6]>>> print(L[::]) #[5, 3, 9, 4, 0, 6, 8, 1, 7, 2]>>> print(L[slice(None, None, None)]) #[5, 3, 9, 4, 0, 6, 8, 1, 7, 2]>>> print(L[1:7:]) #[3, 9, 4, 0, 6, 8]>>> print(L[slice(1,7,None)]) #[3, 9, 4, 0, 6, 8]>>> print(L[1:7]) #[3, 9, 4, 0, 6, 8]>>> print(L[slice(1,7)]) #[3, 9, 4, 0, 6, 8]>>> print(L[:7:]) #[5, 3, 9, 4, 0, 6, 8]>>> print(L[slice(None, 7, None)]) #[5, 3, 9, 4, 0, 6, 8]

列表的“查”操作是使用运算符in监测是否存在指定元素

  1. 使用运算符in(not in)检查列表中是否存在(不存在)指定元素。
  2. 对于in,如果存在,结果返回True;如果不存在,返回False。
  3. 对于not in 如果存在,结果返回False;如果不存在,结果返回True。
#代码演示L = [3, 4, 5, 6, 7]>>> print(5 in L) #True>>> print(7 in L) #True>>> print(10 in L) #False>>> print(10 not in L) #True>>> print(7 not in L) #False

注意:以上代码均在Python3.x解释器上运行,有问题请关注我私信我,教程会持续不断更新


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值