“切片”这一操作是针对于Python中序列的重要操作之一,适用于列表、元组、字符串及range等其他可迭代对象。在这里,以列表为例,“切片”操作后可返回新的新列表,“切片”的功能可在目标列表中截取部分列表,也可实现部分元素增加与删除。

列表“切片”在形式为[start : end : step],与内置函数range用法形式上一致。start为起始,end为截止,step为步长。与range一样,切片也有省略形式。当start位置为0时可省略,当end为列表长度时可省略,当step步长为1时可省略,另外,省略步长时,邻近的冒号也可省略。注意切片在负数方向上的区别,start与end在逻辑上条件,以及下标越界。

功能一:“切片获取部分元素列表

>>> alist = [3,1,3,1,4,1,5,9,2,6]    #从位置3到9步长为2截取
>>> alist[3:9:2]
[1, 1, 9]
>>> alist[::-1]    #返回逆序列表
[6, 2, 9, 5, 1, 4, 1, 3, 1, 3]
>>> id(alist)    #返回的列表为新列表
2375393477056
>>> id(alist[::-1])
2375393740160
>>> alist[1::2]    #步长为2,获取奇位上的元素
[1, 1, 1, 9, 6]

功能二:“切片”能修改列表元素

>>> alist = [3,1,3,1,4,1,5,9,2,6]
>>> alist[:3]=[5,3,3]
>>> alist
[5, 3, 3, 1, 4, 1, 5, 9, 2, 6]    #修改位置前三
>>> alist[5:]=[5,2,6,6,7]
>>> alist
[5, 3, 3, 1, 4, 5, 2, 6, 6, 7]    #从位置5开始修改
>>> alist[::2]=['a','b','c','d','e']
>>> alist
['a', 3, 'b', 1, 'c', 5, 'd', 6, 'e', 7]    #步长为2进行修改
>>> alist[::2]=range(5)
>>> alist
[0, 3, 1, 1, 2, 5, 3, 6, 4, 7]
>>> alist=['a', 3, 'b', 1, 'c', 5, 'd', 6, 'e', 7]
>>> alist[1::2]=range(5)
>>> alist
['a', 0, 'b', 1, 'c', 2, 'd', 3, 'e', 4]    #序列解包用法

功能三:“切片”对列表的增加与删除

>>> alist
['a', 0, 'b', 1, 'c', 2, 'd', 3, 'e', 4]
>>> alist[3:3]=[5]    #在位置3插入列表
>>> alist
['a', 0, 'b', 5, 1, 'c', 2, 'd', 3, 'e', 4]
>>> alist[len(alist):9]=['a']    #在列表尾部添加列表
>>> alist
['a', 0, 'b', 5, 1, 'c', 2, 'd', 3, 'e', 4, 'a']
>>> alist[0:3]=[]    #以空列表形式删除部分列表
>>> alist
[5, 1, 'c', 2, 'd', 3, 'e', 4, 'a']
>>> del alist[:3]    #借助del命令删除部分列表
>>> alist
[2, 'd', 3, 'e', 4, 'a']

功能四:切片得到列表的“浅复制”

>>> alist = [5,[5,6],7,8]
>>> blist = alist[::]
>>> blist
[5, [5, 6], 7, 8]
>>> blist[1].append(2)
>>> blist
[5, [5, 6, 2], 7, 8]
>>> alist
[5, [5, 6, 2], 7, 8]
>>> alist==blist    #列表内的值相同
True
>>> alist is blist    #浅复制,不属于同一个对象
False
>>> id(alist)==id(blist)    #产生的是新列表
False

关于列表的“切片”操作相关推荐

  1. python列表的切片操作

    python 的列表支持切片操作,也让我们能够根据自己的需要切出想要的数据. 列表的切片主要是3个方向的操作: 比如:m = [1,2,3,44,11] 1 正向索引: 方向是从左到右 c = m[1 ...

  2. python列表超出索引_python列表的切片操作允许索引超出范围

    web开发的步骤 前端知道是浏览器呈现的部分,相对于前端,后台你可以理解为服务器端专门处理.读取.存储数据库数据的部分. 因为网站是基于B\S架构,即浏览器---服务端架构,就程序来讲,可笼统划分为前 ...

  3. 【python基础语法】列表的查询操作(包括切片)

    目录 列表 列表的创建[]或list() 定位列表中的元素L[0] 查询列表中元素索引L.index() 列表的切片操作L[start:stop:step] L[slice(start,stop,st ...

  4. Python列表切片操作

    列表的切片操作 完整的切片表达式使用2个冒号分隔的3个参数[start : stop : step] 第一个数字表示切片开始的位置(默认为0),第二个数字表示切片截至(但不包含)位置(默认为列表长度) ...

  5. python迭代-如何对迭代器做切片操作

    如何对迭代器做切片操作 问题举例 读取某个文件内容的100~300行内容,我们是否可以使用 类似列表切片的方式得到一个100~300行文件内容的生成器 分析 列表的切片操作其实是在重载方法__getI ...

  6. 092:QuerySet API详解-切片操作

    QuerySet API详解-切片操作: 切片操作:有时候我们查找数据,有可能只需要其中的一部分.那么这时候可以使用切片操作来帮我们完成. QuerySet 使用切片操作就跟列表使用切片操作是一样的. ...

  7. python列表切片口诀-python学习之“切片操作从入门到精通”

    在python学习开发的过程中,我们总是不断的要对List(列表),Tuple(元组)有取值操作:假如我们有一个列表List1现在想取出1其中的前5个元素,改怎么操作呢? 1 >>> ...

  8. python列表切片后得到剩余列表_python列表切片和嵌套列表取值操作详解

    python列表切片和嵌套列表取值操作详解 给出列表切片的格式: [开头元素::步长] # 输出直到最后一个元素,(最后一个冒号和步长可以省略,下同) [开头元素:结尾元素(不含):步长] # 其中, ...

  9. python列表切片图解_Python列表切片操作实例总结

    本文实例讲述了Python列表切片操作.分享给大家供大家参考,具体如下: 切片指的是列表的一部分. 1 基本用法 指定第一个元素和最后一个元素的索引,即可创建切片 .Python 会在到达指定的第二个 ...

最新文章

  1. html 设置视频尺寸,如何使用CSS控制视频的宽高?
  2. ubuntu java 编译器_Ubuntu 16.04配置Java开发环境
  3. 机器学习-降维之奇异值分解SVD算法原理及实战
  4. Flask之flask-session
  5. C#获取当前系统磁盘符、系统目录、桌面等
  6. 克隆可序列化和不可序列化的Java对象
  7. 为Ubuntu安装build-essential软件包
  8. 【Python】对象、类、元类
  9. ubuntu16.04下安装nodejs
  10. python-含参函数
  11. 3_kicad 5 0_PCB计算器(稳压器,布线宽度,电气间距,传输线路,RF衰减器,颜色代码,电路板类别)...
  12. Craft CMS简介
  13. 深度强化学习中的对抗攻击和防御
  14. python爬虫可以爬哪些网站-网络爬虫都能干什么?有哪些网站的数据可以爬取?...
  15. Airtest 网易 UI 自动化工具 Airtest 浅用记录
  16. 3D游戏之父--John Carmack连载系列(四)
  17. 电子计算机技发展趋势,现代电子信息技的现况及发展趋势.ppt
  18. php 变量 问号,php – Laravel查询返回问号而不是变量值
  19. python三年a班的成绩_Python题集:2019春Python程序设计选修课习题笔记
  20. 基于插件式的开发框架

热门文章

  1. iso马甲包是什么意思?如何制作上传
  2. 计算机对康复治疗学的帮助,我院康复医学科引进认知训练配合计算机心理失语症脑功能评估训练系统...
  3. Latex error: file ‘xxx.sty‘ not found
  4. 节奏快?压力大?VR全景客栈带你体验安逸生活
  5. 【前端指南】f5与ctrl+f5的区别
  6. 什么是MapReduce(入门篇)
  7. 超好玩的模拟游戏:美国卡车模拟Mac中文版
  8. 51单片机入门教程(3)——数码管显示学号
  9. 如何对列表/元组进行排序(列表/元组)?
  10. 隐私计算加密技术基础系列-Diffie–Hellman key exchange