400-650-7353

精品课程

您所在的位置:首页 > IT干货资料 > python > 【Python基础知识】Python中列表的切片

【Python基础知识】Python中列表的切片

  • 发布: python培训
  • 来源:python干货资料
  • 2020-08-21 14:55:40
  • 阅读()
  • 分享
  • 手机端入口

切片(slice)用来获取列表中的片段,即原始列表的子列表。切片用被方括号“[]”括起来且用冒号“:”分隔的数字来表示:

  1. >>> fruits = ['apple''banana''watermelon''strawberry''orange'
  2. >>> fruits[0:3]   # 获取列表中的前3项 
  3. ['apple''banana''watermelon'
  4. >>> fruits[-2:-1]   # 使用负数切片 
  5. ['strawberry'

注意,切片包含索引项的起始值,而不包含结束值。因此,使用切片fruits[0:3]获取的是fruits列表的前3项,如图所示。

使用负数切片fruits[-2:-1]获取的是fruits列表的倒数第2项,如图所示。

初学者可能会认为切片也包含索引项的结束值,从而获取到错误的切片。例如,尝试获取列表的全部项:

  1. >>> fruits = ['apple''banana''watermelon''strawberry''orange'
  2. >>> fruits[0:4]   # 错误的切片,只能获取到列表中的前4项 
  3. ['apple''banana''watermelon''strawberry'
  4. >>> fruits[0:5]   # 正确的切片,获取列表的全部项 
  5. ['apple''banana''watermelon''strawberry''orange'

1.1 超出列表范围的切片

如果尝试获取超出列表范围的切片,Python解释器不会报错,而是返回一个空列表:

  1. >>> fruits[100:200
  2. [] 

同样,如果切片中索引项的起始值大于结束值,Python解释器同样不会报错,而是返回一个空列表:

  1. >>> fruits[3:0] 
  2. [] 

1.2 切片的简写

切片的简写分为以下三种情况:

①省略索引项的起始值,语法格式为“列表名[:结束值]”,与“列表名[0:结束值]”是等价的。

②省略索引项的结束值,语法格式为“列表名[起始值:]”,与“列表名[起始值:列表长度]”是等价的。

③省略索引项的起始值和结束值,即获取列表的全部项,语法格式为“列表名[:]”,与“列表名[0:列表长度]”是等价的。

下面是一些切片简写的示例:

  1. >>> fruits = ['apple''banana''watermelon''strawberry''orange'
  2. >>> fruits[:3]   # 获取列表中的前3项 
  3. ['apple''banana''watermelon'
  4. >>> fruits[-2:]   # 获取列表中的后2项 
  5. ['strawberry''orange'
  6. >>> fruits[:]   # 获取列表的全部项 
  7. ['apple''banana''watermelon''strawberry''orange'

前文提到过,fruits[-2:-1]获取的是倒数第2项,如果试图获取倒数第1项:

  1. >>> # 这两种方式在此处是等价的 
  2. >>> fruits[-1:] 
  3. ['orange'
  4. >>> fruits[-1:5
  5. ['orange'

1.3 指定切片的步长

在执行切片操作时,可以指定步长,步长的值也用冒号来分隔。步长能够跳过不想要获取的项。为了更容易地看出步长的工作方式,重新创建一个包含从0到9的整数列表:

  1. >>> numbers = [0123456789

步长的默认值为1,即一个挨着一个,前面使用过的切片全都是这样。下面两种写法是等价的:

  1. >>> numbers = [0123456789
  2. >>> numbers[:] 
  3. [0123456789
  4. >>> numbers[::1
  5. [0123456789

如果指定的步长大于1,那么会跳过一些项。当切片的步长为2时,会跳过1项;当切片的步长为3时,会跳过2项:

  1. >>> numbers[::2
  2. [02468
  3. >>> numbers[::3
  4. [0369

索引值可以为负数,同样步长也可以为负数。当步长为负数时,列表从后向前取。当切片的步长为-1时,即为反转列表;当切片的步长为-2时,会反转列表并跳过1项:

  1. >>> numbers = [0123456789
  2. >>> numbers[::-1]   # 步长为-1 
  3. [9876543210
  4. >>> numbers[::-2]   # 步长为-2 
  5. [97531

 

课程好礼申请领取
您的姓名
您的电话
意向课程
 

中公优就业

官方QQ

扫描上方二维码或点击一键加群,免费领取价值599元网课,加群暗号:599。 一键加群

>>本文地址:
注:本站稿件未经许可不得转载,转载请保留出处及源文件地址。

推荐阅读

优就业:ujiuye

关注中公优就业官方微信

  • 关注微信回复关键词“大礼包”,领80G学习资料
QQ交流群
领取免费网课
(加群备注“网站”)
IT培训交流群 加入群聊 +
软件测试 加入群聊 +
全链路UI/UE设计 加入群聊 +
Python+人工智能 加入群聊 +
互联网营销 加入群聊 +
Java开发 加入群聊 +
PHP开发 加入群聊 +
VR/AR游戏开发 加入群聊 +
大前端 加入群聊 +
大数据 加入群聊 +
Linux云计算 加入群聊 +
优就业官方微信
扫码回复关键词“大礼包”
领取80G学习资料

淘宝商家短视频
预约试听
2020OAO训练营
免费试听
课程资料、活动优惠 领取通道