【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法

文章目录

  • 前言
  • 一、基本语法
  • 二、切片
    • 1.a[i:j]
    • 2.a[i:j:k]
  • 总结:[-1] [:-1] [::-1] [n::-1]


前言

在python中,序列是python最基本的数据结构,包括有string,list,tuple等数据类型,切片对序列型对象的一种索引方法,其中每个元素都有对应的位置值,具有正向递增(从0开始),反向递减(-1开始)的属性,根据此可以进行普通索引或切片索引。普通索引只取出列中一个下标对应的元素,而切片索引取出序列中一个范围对应的元素。本文主要讲对序列对象的切片索引。


一、基本语法

操作符 描述
a[i] 普通索引,返回序列 a 中第 i 个元素,i为序号
a[i:j] 切片,得到 a 序列中序号从 i 到 j(不包括 j )范围元素。
当 i 缺省时,默认为0
当 j 缺省时,默认为len(a)
当 i,j 均缺省时,默认为全部
a[i:j:k] 切片, 返回序列 a 中从序号 i 到 j (不包括 j ),以k为步长的元素子序列。
k>0,步长自左而右(正序);i 缺省时,默认为0,j 缺省时,默认为len(a)
k<0,步长自右而左(倒序);i 缺省时,默认为-1,j 缺省时,默认为-len(a)-1

二、切片

1.a[i:j]

[1:3]:取第二、三个元素。

a=[10,20,30,40,50]
a[1:3]
#输出:[20, 30]

【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法_第1张图片

[1:-1]:取第二个到倒数第二个元素。

a=[10,20,30,40,50]
a[1:-1]
#输出:[20, 30, 40]

【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法_第2张图片

[-3:-1]:取倒数第三到倒数第二个元素。

a=[10,20,30,40,50]
a[-3:-1]
#输出:[30, 40]

【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法_第3张图片

  • i,j 缺省

[:-1]:取第一个到倒数第二个元素。

a=[10,20,30,40,50]
a[:-1]
#输出:[10, 20, 30, 40]

【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法_第4张图片

[-1:]:j 缺省,为5,取最后一个元素。

a=[10,20,30,40,50]
a[-1:]
#输出:[50]

【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法_第5张图片

[3:]:j 缺省,为5,取第四个到最后一个元素。

a=[10,20,30,40,50]
a[3:]
#输出:[40, 50]

【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法_第6张图片

[:]:取出全部元素。

a=[10,20,30,40,50]
a[:]
#输出:[10, 20, 30, 40, 50]

【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法_第7张图片

2.a[i:j:k]

[1:6:2]:从左往右,步长2,范围从第二个元素开始到最后一个元素。

a=[10,20,30,40,50]
a[1:6:2]
#输出:[20, 40]

【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法_第8张图片

[-5:-2:2]:从左往右,步长2,范围从第一个元素开始到倒数第二个元素。

a=[10,20,30,40,50]
a[-5:-2:2]
#输出:[10, 30]

【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法_第9张图片

[-1:-6:-2]:从右往左,步长2,范围从最后一个元素开始到第一个元素。

a=[10,20,30,40,50]
a[-1:-6:-2]
#输出:[50, 30, 10]

【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法_第10张图片

  • i,j,k 缺省情况

[ : : ]:i 默认为1,j 默认为6,k 默认为1,从左往右,取全部。

a=[10,20,30,40,50]
a[::]
#输出:[10, 20, 30, 40, 50]

【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法_第11张图片

[1: :2]:j 默认为6,从左往右,步长2,范围从第二个元素开始到最后一个元素。

a=[10,20,30,40,50]
a[1::2]
#输出:[20, 40]

【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法_第12张图片

[ :4:2]:i 默认为0,从左往右,步长2,范围从第一个元素开始到第四个元素。

a=[10,20,30,40,50]
a[ :4:2]
#输出:[10, 30]

【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法_第13张图片

[ : : -1]:i 默认为-1,j 默认为-6,从右往左,取全部,其实就是倒序。

a=[10,20,30,40,50]
a[::-1]
#输出:[50, 40, 30, 20, 10]

【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法_第14张图片

[-1: :-2]:k<0,j 默认为-6,从右往左,步长2,范围从最后一个元素开始到第一个元素。

a=[10,20,30,40,50]
a[-1::-2]
#输出:[50, 30, 10]

【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法_第15张图片

[ :-5:-2]:k<0,i 默认为-1,即从右往左,步长2,范围从最后一个元素开始到第二个元素。

a=[10,20,30,40,50]
a[:-5:-2]
#输出:[50, 30]

【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法_第16张图片


总结:[-1] [:-1] [::-1] [n::-1]

  • [-1]:获取最后一个元素;
  • [:-1]:除了最后一个元素,获取其他所有的元素;
  • [::-1]:对第一个到最后一个元素进行倒序之后取出;
  • [n::-1]:对第一个到第n个元素进行倒序后取出。

你可能感兴趣的:(python基础,python,服务器,开发语言)