如何使用Python中的变量对列表进行切片

 我来答
huanglenzhi
2018-08-23 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517194
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
只需使用两个变量:
i, j = 2, 4a[i:j]

如果真的需要是一个单一的变量,你可以使用一个元组。
中公教育IT培训优就业
2020-08-26 · 百度认证:北京中公教育科技官方账号
中公教育IT培训优就业
中公教育IT培训品牌,致力于培养互联网领域的高端人才,以学员就业为目的,优质就业为宗旨,是一家集Java开发、Web前端、UI/UE交互设计、大数据、软件测试等课程为一体的IT培训机构。
向TA提问
展开全部

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

  • >>> fruits = ['apple', 'banana', 'watermelon', 'strawberry', 'orange'] 

  • >>> fruits[0:3]   # 获取列表中的前3项 

  • ['apple', 'banana', 'watermelon'] 

  • >>> fruits[-2:-1]   # 使用负数切片 

  • ['strawberry'] 

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

    请点击输入图片描述

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

    请点击输入图片描述

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

  • >>> fruits = ['apple', 'banana', 'watermelon', 'strawberry', 'orange'] 

  • >>> fruits[0:4]   # 错误的切片,只能获取到列表中的前4项 

  • ['apple', 'banana', 'watermelon', 'strawberry'] 

  • >>> fruits[0:5]   # 正确的切片,获取列表的全部项 

  • ['apple', 'banana', 'watermelon', 'strawberry', 'orange'] 

  • 1.1 超出列表范围的切片

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

  • >>> fruits[100:200] 

  • [] 

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

  • >>> fruits[3:0] 

  • [] 

  • 1.2 切片的简写

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

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

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

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

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

  • >>> fruits = ['apple', 'banana', 'watermelon', 'strawberry', 'orange'] 

  • >>> fruits[:3]   # 获取列表中的前3项 

  • ['apple', 'banana', 'watermelon'] 

  • >>> fruits[-2:]   # 获取列表中的后2项 

  • ['strawberry', 'orange'] 

  • >>> fruits[:]   # 获取列表的全部项 

  • ['apple', 'banana', 'watermelon', 'strawberry', 'orange'] 

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

  • >>> # 这两种方式在此处是等价的 

  • >>> fruits[-1:] 

  • ['orange'] 

  • >>> fruits[-1:5] 

  • ['orange'] 

  • 1.3 指定切片的步长

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

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

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

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

  • >>> numbers[:] 

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

  • >>> numbers[::1] 

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

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

  • >>> numbers[::2] 

  • [0, 2, 4, 6, 8] 

  • >>> numbers[::3] 

  • [0, 3, 6, 9] 

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

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

  • >>> numbers[::-1]   # 步长为-1 

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

  • >>> numbers[::-2]   # 步长为-2 

  • [9, 7, 5, 3, 1] 

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式