python中的切片

这篇具有很好参考价值的文章主要介绍了python中的切片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一.切片的基础用法

二.切片是一个伪独立的对象

 三.切片可作为占位符


        众所周知,我们可以通过索引来查找序列类型(字符串,列表,元组...)中的单个元素。而切片是一种截取索引片段的技术,借助切片技术,我们可以十分灵活的处理序列类型的对象。

        切片并非列表的专属操作,但是因为列表最具代表性,下面主要以列表来举例。

一.切片的基础用法

切片的书写形式:[i : i + n : m]。

其中i为切片的起始索引,为列表首位时可以忽略。i + n是列表的结束位置,为列表末位时可以忽略。索引范围为[i, i+n),m可以不提供,默认值时1,不允许为0。当m为负数时,列表翻转。

注意:这些值都可以大于列表的长度,不会报越界。但是会发生截断,就是仍然按照范围查找,但是超出序列数据范围部分,全部被遐想成空值,最终获取到空值进行忽略即可。

  • 表示整个列表

python 切片,python,python,开发语言

  • 步长为正,从列表前往后计算步长。

python 切片,python,python,开发语言

  •  当步长为负数,是从列表后往前计算步长。注意范围索引的最小值和最大值也需要倒转。

python 切片,python,python,开发语言

  • 切片的步长不能为0

python 切片,python,python,开发语言

  • 按照步长方向(正数正序,负数倒序),当索引范围最大值小于最小值时,返回的片段为空。

python 切片,python,python,开发语言

二.切片是一个伪独立的对象

        切片的返回结果是一个新的独立的序列。以列表为例,列表切片后得到的还是一个新的列表,占用新的内存地址。

        但是切片只是浅拷贝,它拷贝的是原列表中的引用,所以当存在可变长对象时,新列表受制于原列表。不是可变长对象,拷贝的是值,是可变长列表,是该可变元素的引用,共用一个空间。

python 切片,python,python,开发语言

python 切片,python,python,开发语言

 三.切片可作为占位符

        切片可以作为独立对象被取出原序列,也可以留在原序列,作为一种占位符。

  • 切片作为占位符是一个空列表,可以实现列表拼接的作用。
arr[1,2,3,4]

#x下面表示的都是一个空列表
arr[0:0]==arr[len(arr):]==len[X:X]

python 切片,python,python,开发语言

  •  切片作为占位符不是一个空列表,可以实现替换,删除元素。

        替换元素是先将切片起始索引到末尾索引位置元素先删除,再将新元素插入。

python 切片,python,python,开发语言

         切片占位符可以带步长,从而实现连续跨越或删除的效果,需要注意的是,这种用法只能支持等长替换。

python 切片,python,python,开发语言文章来源地址https://www.toymoban.com/news/detail-706861.html

到了这里,关于python中的切片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [开发语言][python][c++]:C++中的this指针和Python中的Self -- 26岁生日

    以朋友的新岁祝福开篇,祝笔者也祝大家☺️: 之前一直对 C++ 中的 this 和 python 中的 self 到底是什么关系,为什么 C++ 要显式的写出来,python 则不需要? 模糊不清,趁着周末整理一下相关结论,希望本篇文章可以解答这些问题,同时对C++和Python中的类加深些理解。 python 当

    2024年01月24日
    浏览(54)
  • [开发语言][c++][python]:C++与Python中的赋值、浅拷贝与深拷贝

    写在前面 :Python和C++中的赋值与深浅拷贝,由于其各自语言特性的问题,在概念和实现上稍微有点差异,本文将这C++和Python中的拷贝与赋值放到一起,希望通过对比学习两语言实现上的异同点,加深对概念的理解。 C++中所谓的 浅拷贝 就是由(系统默认的) 拷贝构造函数对

    2024年02月02日
    浏览(39)
  • SystemVerilog中的切片操作

    在硬件描述语言中,信号切片操作是指对信号中的某个或某几个位进行访问或操作 其中, signal_name 是要进行切片操作的信号名, start_index 是切片的起始位置, length 是切片的长度。 例如,如果有一个32位的信号 my_signal ,需要获取该信号的第16到第23个位(包括第16和第23个位

    2024年02月02日
    浏览(31)
  • go中的切片

    案例1: 从输出结果可以看出:append 后的 s 被重新分配了底层数组(也就是说 s 的底层数组不再是 data,那么修改 s 的值不会再影响 data,它们不再有关联),并把原数组中的值拷贝到新数组中。这是因为超出了原切片的容量。在上例中,如果只追加一个值,则不会超过 s.ca

    2024年02月10日
    浏览(26)
  • Go语言基础之切片

    切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。 切片是一个引用类型,它的内部结构包含地址、长度和容量。切片一般用于快速地操作一块数据集合 声明切片类型的基本语法如下: 其中, name:表示变

    2024年02月11日
    浏览(42)
  • Go 语言切片是如何扩容的?

    原文链接: Go 语言切片是如何扩容的? 在 Go 语言中,有一个很常用的数据结构,那就是切片(Slice)。 切片是一个拥有相同类型元素的可变长度的序列,它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。 切片是一种引用类型,它有三个属性: 指针 , 长度 和

    2023年04月09日
    浏览(31)
  • pytorch中的矩阵切片操作完全讲解

    我们经常需要从2维或3维tensor中进行切片操作,比如从mask模型中取出mask所在位置的向量。 Talk is cheap, show me code.  以下所有维度从0开始,3维即 0,1,2 ----------------------------------------------------- 另外,pytorch的函数已经为 这种切片操作准备好了,用以下代码: batch[\\\"loss_ids \\\"] 是

    2024年02月14日
    浏览(30)
  • 【Go】Go 语言教程--GO语言切片(Slice)(十四)

    往期回顾: Go 语言教程–介绍(一) Go 语言教程–语言结构(二) Go 语言教程–语言结构(三) Go 语言教程–数据类型(四) Go 语言教程–语言变量(五) Go 语言教程–GO语言常量(六) Go 语言教程–GO语言运算符(七) Go 语言教程–GO条件和循环语句(八) Go 语言教程

    2024年02月16日
    浏览(37)
  • 前端--文件上传--文件切片--利用FileReader()中的readAsDataURL()做缩略图--多文件上传--formData--切片上传实现

    可以把File 类型 转换为 Blob 类型,因为 File 是Blob的子类 Blob是不可修改也是无法读取里面的内容的。但是Filereader就提供了读取Blob里面内容的方法。 1.做缩略图用readAsDataURL 给图片显示一下 可以利用切片来实现上传半张图片的效果 2. 也可以做文本预览(利用readAsText)方式和上

    2023年04月20日
    浏览(50)
  • 【go语言】2.2.1 数组和切片

    数组和切片是 Go 语言中常用的数据结构,它们都可以存储多个同类型的元素。 数组是具有固定长度的数据类型,它的长度在定义时就已经确定,不能随意改变。 你可以使用以下方式定义一个数组: 这段代码定义了一个长度为 3 的  int  类型数组  arr 。你也可以在定义时初

    2024年02月15日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包