Python切片操作详细例子

发布时间:2022-04-13 09:48:25 人气:30 作者:多测师

  以下示例均以列表a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]为例:

  >>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

  1.切取单个值

  >>> a[0]

  0

  >>> a[-4]

  6

  2.切取完整对象

  >>> a[:] # 从左往右

  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

  >>> a[::] # 从左往右

  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

  >>> a[::-1] # 从右往左

  [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

  3.start_index和end_index全为正(+)索引的情况

  >>> a[1:6] # step=1,从左往右取值,start_index=1到end_index=6同样表示从左往右取值。

  [1, 2, 3, 4, 5]

  >>>a[1:6:-1] # step=-1,决定了从右往左取值,而start_index=1到end_index=6决定了从左往右取值,两者矛盾。

  >>> [] # 输出为空列表,说明没取到数据。

  >>>a[6:1] # step=1,决定了从左往右取值,而start_index=6到end_index=1决定了从右往左取值,两者矛盾。

  >>> [] # 同样输出为空列表。

  >>>a[:6] # step=1,从左往右取值,从“起点”开始一直取到end_index=6。

  >>> [0, 1, 2, 3, 4, 5]

  >>>a[:6:-1] # step=-1,从右往左取值,从“终点”开始一直取到end_index=6。

  >>> [9, 8, 7]

  >>>a[6:] # step=1,从左往右取值,从start_index=6开始,一直取到“终点”。

  >>> [6, 7, 8, 9]

  >>>a[6::-1] # step=-1,从右往左取值,从start_index=6开始,一直取到“起点”。

  >>> [6, 5, 4, 3, 2, 1, 0]

Python切片操作详细例子

  4.start_index和end_index全为负(-)索引的情况

  >>>a[-1:-6] # step=1,从左往右取值,而start_index=-1到end_index=-6决定了从右往左取值,两者矛盾。

  >>> []

  >>>a[-1:-6:-1] # step=-1,从右往左取值,start_index=-1到end_index=-6同样是从右往左取值。

  >>> [9, 8, 7, 6, 5]

  >>>a[-6:-1] # step=1,从左往右取值,而start_index=-6到end_index=-1同样是从左往右取值。

  >>> [4, 5, 6, 7, 8]

  >>>a[:-6] # step=1,从左往右取值,从“起点”开始一直取到end_index=-6。

  >>> [0, 1, 2, 3]

  >>>a[:-6:-1] # step=-1,从右往左取值,从“终点”开始一直取到end_index=-6。

  >>> [9, 8, 7, 6, 5]

  >>>a[-6:] # step=1,从左往右取值,从start_index=-6开始,一直取到“终点”。

  >>> [4, 5, 6, 7, 8, 9]

  >>>a[-6::-1] # step=-1,从右往左取值,从start_index=-6开始,一直取到“起点”。

  >>> [4, 3, 2, 1, 0]

  5.start_index和end_index正(+)负(-)混合索引的情况

  >>>a[1:-6] # start_index=1在end_index=-6的左边,因此从左往右取值,而step=1同样决定了从左往右取值。

  >>> [1, 2, 3]

  >>>a[1:-6:-1] # start_index=1在end_index=-6的左边,因此从左往右取值,但step=-则决定了从右往左取值,两者矛盾。

  >>> []

  >>>a[-1:6] # start_index=-1在end_index=6的右边,因此从右往左取值,但step=1则决定了从左往右取值,两者矛盾。

  >>> []

  >>>a[-1:6:-1] # start_index=-1在end_index=6的右边,因此从右往左取值,而step=-1同样决定了从右往左取值。

  >>> [9, 8, 7]

  6.连续切片操作

  >>>a[:8][2:5][-1:]

  >>> [4]

  相当于:

  a[:8]=[0, 1, 2, 3, 4, 5, 6, 7]

  a[:8][2:5]= [2, 3, 4]

  a[:8][2:5][-1:] = 4

  理论上可无限次连续切片操作,只要上一次返回的依然是非空可切片对象。

  7.切片操作的三个参数可以用表达式

  >>>a[2+1:3*2:7%3] # 即:a[2+1:3*2:7%3] = a[3:6:1]

  >>> [3, 4, 5]

  8.其他对象的切片操作

  前面的切片操作说明都以list为例进行说明,但实际上可进行的切片操作的数据类型还有很多,包括元组、字符串等等。

  >>> (0, 1, 2, 3, 4, 5)[:3] # 元组的切片操作

  >>> (0, 1, 2)

  >>>'ABCDEFG'[::2] # 字符串的切片操作

  >>>'ACEG'

  >>>for i in range(1,100)[2::3][-10:]: # 利用range函数生成1-99的整数,然后取3的倍数,再取最后十个。

  print(i, end=' ')

  >>> 72 75 78 81 84 87 90 93 96 99

  以上内容为大家介绍了Python切片操作详细例子,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线