精华内容
下载资源
问答
  • 2022-04-16 16:09:51

    切片是Python序列的重要操作之一,适用于列表、元组、字符串、range对象等类型

    L = list(range(10))

    L[n1:n2:n3]

    n1:切片开始位置(默认为0)

    n2:切片截止(但不包含)位置(默认为列表长度)

    n3:切片的步长(默认为1),当步长省略时可以顺便省略最后一个冒号

    切片的作用

    1. 截取列表中的任何部分,得到一个新列表
    2. 修改和删除列表中部分元素
    3. 为列表对象增加元素
    4. 切片返回的是列表元素的浅复制

    浅复制

    指生成一个新的列表,并且把原列表中所有元素的引用都复制到新列表中。如果原列表中只包含整数、实数、复数等基本类型或元组、字符串这样的不可变类型的数据,一般是没有问题的。

    如果原列表中包含列表之类的可变数据类型,由于浅复制时只是把子列表的引用复制到新列表中,这样的话修改任何一个都会影响另外一个。

    更多相关内容
  • 详解Python 切片语法

    2020-12-26 02:51:44
    Python切片是特别常用的功能,主要用于对列表的元素取值。使用切片也会让你的代码显得特别Pythonic。 切片的主要声明如下,假设现在有一个list,命名为alist: alist = [0,1,2,3,4] 切片语法的基本形式为: alist...
  • python切片操作

    2018-10-16 15:04:08
    Python切片操作原理及例子,非常实用。
  • 本文实例讲述了Python切片操作。分享给大家供大家参考,具体如下: 在很多编程语言中,针对字符串提供了截取函数,其实目的就是对字符串切片。Python没有针对字符串的截取函数,只需要切片操作就可以完成。 切片操作...
  • 目录Python切片一、使用切片获取列表部分元素二、使用切片为列表增加元素三、使用切片替换和修改列表中的元素四、使用切片删除列表中的元素 Python切片 在形式上,切片使用2个冒号分隔的3个数字来完成。 [start:end:...
  • python切片

    千次阅读 2021-03-17 22:31:30
    >>> r['Michael', 'Sarah', 'Tracy']对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。 对应上面的问题,取前3个元素,用一行代码就可以完成切片: >...

    c7410bb448405f2197c11d888af6d65c.png

    取一个list或tuple的部分元素是非常常见的操作。比如,一个list如下:

    >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']取前3个元素,应该怎么做?

    笨办法:

    >>> [L[0], L[1], L[2]]['Michael', 'Sarah', 'Tracy']之所以是笨办法是因为扩展一下,取前N个元素就没辙了。

    取前N个元素,也就是索引为0-(N-1)的元素,可以用循环:

    >>> r = []>>> n = 3>>> for i in range(n):... r.append(L[i])... >>> r['Michael', 'Sarah', 'Tracy']对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。

    对应上面的问题,取前3个元素,用一行代码就可以完成切片:

    >>> L[0:3]['Michael', 'Sarah', 'Tracy']L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素。

    如果第一个索引是0,还可以省略:

    >>> L[:3]['Michael', 'Sarah', 'Tracy']也可以从索引1开始,取出2个元素出来:

    >>> L[1:3]['Sarah', 'Tracy']类似的,既然Python支持L[-1]取倒数第一个元素,那么它同样支持倒数切片,试试:

    >>> L[-2:]['Bob', 'Jack']>>> L[-2:-1]['Bob']记住倒数第一个元素的索引是-1。

    切片操作十分有用。我们先创建一个0-99的数列:

    >>> L = list(range(100))>>> L[0, 1, 2, 3, ..., 99]可以通过切片轻松取出某一段数列。比如前10个数:

    >>> L[:10][0, 1, 2, 3, 4, 5, 6, 7, 8, 9]后10个数:

    >>> L[-10:][90, 91, 92, 93, 94, 95, 96, 97, 98, 99]前11-20个数:

    >>> L[10:20][10, 11, 12, 13, 14, 15, 16, 17, 18, 19]前10个数,每两个取一个:

    >>> L[:10:2][0, 2, 4, 6, 8]所有数,每5个取一个:

    >>> L[::5][0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]甚至什么都不写,只写[:]就可以原样复制一个list:

    >>> L[:][0, 1, 2, 3, ..., 99]tuple也是一种list,唯一区别是tuple不可变。因此,tuple也可以用切片操作,只是操作的结果仍是tuple:

    >>> (0, 1, 2, 3, 4, 5)[:3](0, 1, 2)字符串'xxx'也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串:

    >>> 'ABCDEFG'[:3]'ABC'>>> 'ABCDEFG'[::2]'ACEG'在很多编程语言中,针对字符串提供了很多各种截取函数(例如,substring),其实目的就是对字符串切片。Python没有针对字符串的截取函数,只需要切片一个操作就可以完成,非常简单。

    展开全文
  • 主要通过代码实例给大家详细介绍了python切片原理和方法,有兴趣的朋友跟着学习下吧。
  • 本文实例讲述了python切片的步进、添加、连接简单操作。分享给大家供大家参考,具体如下: 步进切片: #coding:utf-8 a=123456 print a[::-1] #output 654321 print a[::-2] #output 642 print a[::2] #output 135 ...
  • Python切片

    千次阅读 2020-12-03 00:14:01
    访问序列的方式叫做切片切片操作符:[] [:] [::]str1 = 'abcdefghijklmnopqrstuvwxyz'1、不写起始位置,取全部>> str1[:]'abcdefghijklmnopqrstuvwxyz'2、步长为3,每隔3-1个字符取一次>> str1[::3]'...

    访问序列的方式叫做切片,切片操作符:[]  [:]  [::]

    str1 = 'abcdefghijklmnopqrstuvwxyz'

    1、不写起始位置,取全部

    >> str1[:]

    'abcdefghijklmnopqrstuvwxyz'

    2、步长为3,每隔3-1个字符取一次

    >> str1[::3]

    'adgjmpsvy'

    3、不写起始位置,步长为-1,表示逆序字符串

    >> str1[::-1]

    'zyxwvutsrqponmlkjihgfedcba'

    4、步长为-3,表示逆序取,每隔|-3|-1个字符取一次

    >> str1[::-3]

    'zwtqnkheb'

    5、-1,表示取倒数第1个字符

    >> str1[-1]

    'z'

    6、-2,表示取倒数第2个字符

    >> str1[-2]

    'y'

    7、str1[:3]步长为1,前三个字符

    'abc'

    8、str1[3:]步长为1,前三个字符不要从第四个字符开始以后的所有字符

    'defghijklmnopqrstuvwxyz'

    注意:

    切片的使用规则为“顾头弃尾”,意思就是切片包括起始位置,但不包括结束位置。

    切片不写开始和结束下标,表示选取的是全部内容。

    切片的第三个参数是步长,当步长为负数时,表示逆序并以绝对值为步长。

    直接使用负数,表示从后面取第几个。

    展开全文
  • python切片操作方法小总结

    千次阅读 2022-03-19 09:36:59
    最近学习python切片,时而醍醐灌顶时而云里雾里,今天终于弄清楚了 python切片 里面自己经常疑惑的地方,记录一下,方便以后查看。 一、切片的2种索引方向 如果掌握切片方法,就能对所有目标值进行随意切取,然鹅可...

    文章参考自:link.

    python切片的详细总结

    最近学习python切片,时而醍醐灌顶时而云里雾里,今天终于弄清楚了 python切片 里面自己经常疑惑的地方,记录一下,方便以后查看。

    一、切片的2种索引方向

    如果掌握切片方法,就能对所有目标值进行随意切取,然鹅可切片的目标对象有2种索引方向:正索引负索引。如下图所示,
    以 a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]举例:
    在这里插入图片描述
    这个字符串 a 的正索引是由左往右,头下标是0,尾下标是9;
    它的负索引是由右往左,头下标是-1,尾下标是-10.

    二、切片的操作方式

    要想成功完成切片,那么需要包含2个 ‘ :’符号,以及3个参数,分别是start_index、end_index、step,一个完整的切片表达式如下所示:

    切片操作基本表达式:object[start_index : end_index : step]

    1、开始索引 start_index :表示的是开始切片的位置,并且切片结果包含该索引下的值;
    2、终止索引 end_index: 表示的结束切片的位置,并且切片结果不包含该索引下的值;
    3、步长step :表示切取的步长值,可正可负,step为正时,索引方向为正方向,step为负时,索引方向为负方向,当step值省略时,默认取值为1。
    切记:步长正负决定切片方向,非常重要!!
    当未写start_index、end_index的值时,都默认,从索引的端点处开始

    三、一些基本操作

    以下举例对象都是列表 a = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

    1、切取单个对象

    切取索引为3的位置所对应的值:
    在这里插入图片描述

    2、切取整个列表

    不填写值的时候,从端点处开始
    在这里插入图片描述

    3、步长step正负值 决定索引方向的一些案例

    • step=1,由左向右,包含start_index =1索引本身包括的值,不包括终止索引end_index =5本身包含的值。
    // An highlighted block
    >>> a [1: 5: ]
    [1, 2, 3, 4]
    >>> # 步长step = 1,默认值,由左往右正索引方向
    
    • step = -1,由右向左,依旧不包含终止索引=5本身所包含的值
    // An highlighted block
    >>> a [ : 5 :-1]
    [9, 8, 7, 6]
    >>> # 步长step= -1,负索引,
    起始索引没写,表示从端点开始由右往左,终止索引是5
    
    • 索引方向相互矛盾,值为空
    // An highlighted block
    >>> a [7 : 2 ]
    []
    >>> # 这是因为起始索引为7终止索引为2,方向是由右往左,
    >但是步长step默认是1,表示正索引,由左往右,两者方向矛盾值为空
    
    • 索引值为负的情况,
      一切以step值正负为准,决定索引方向!
    // An highlighted block
    >>> a [ -6 : :]
    [4, 5, 6, 7, 8, 9]
    >>> #起始于 start_index = -6,步长为1,由左向右
    
    • 根据前面所学,切片结果包含起始索引位置的值,但不包含终止索引位置的值,这种情况指的是给定了具体的终止索引,如下:
    // An highlighted block
    >>> #给了明确的终止索引位置,那结果就不包含终止索引本身的值
    如下不包含end_index = 5位置上的值
    >>> a [ : 5 : -1 ]
    [9, 8, 7, 6]
    
    • 这个案列是包含了终止索引位置的值,参照上条加入对比。
      也就是说,指定了具体的终止索引位置,那么取值不包括这个位置上的值,如果没指定,默认终止索引就在端点处,那么取值包括该位置的值
    // An highlighted block
    >>> a [ 5: : -1]
    [5, 4, 3, 2, 1, 0]
    >>> #没有指定具体的终止索引位置,所以默认终止于端点处,
    因此包含端点处的值,即0
    

    四、进阶操作

    1.修改某个元素值

    直接将修改后的值带入进索引里面

    // An highlighted block
    >>> a [ 2 ] = [ 'A' ]
    >>> print (a)
    [0, 1, ['A'], 3, 4, 5, 6, 7, 8, 9]
     #直接在需要修改的索引处赋值,将索引值 = 2的值修改为['A']
    

    2.替换元素值

    是从起始索引开始,包含起始索引本身的值,将数值插入,然后再将终止索引本身及以后的值,紧跟在插入数值后面就行了,不包含终止索引本身。下面以替代索引3和5之间的元素为案例分析
    包含 “起始索引=3 ”的元素本身,不包含”终止索引 = 5“的元素本身,元素个数应该是2个。
    (1)给定替换的元素个数 = 2

    // An highlighted block
    >>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> print (a)
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> a [ 3: 5] = [ 'b', 'c']
    >>> print (a)
    [0, 1, 2, 'b', 'c', 5, 6, 7, 8, 9]
    >>> #替代写法,将起始索引本身的值到终止索引前一个索引之间的值进行替换,
    >终止索引本身的数值不替换
    

    (2)给定替换的元素个数 > 2个

    // An highlighted block
    >>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> print (a)
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> a [ 3: 5 ] = [ 'b', 'c', 'd', 'e']
    >>> print (a)
    [0, 1, 2, 'b', 'c', 'd', 'e', 5, 6, 7, 8, 9]
    >>>  #插入写法,从开始索引为3的地方带入插入值,带入插入数值后,
    将索引值为5的值本身及其后面的值紧跟着排列在后就行
    

    (3)给定替换的元素个数 < 2。

    // An highlighted block
    >>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> print (a)
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> a [ 3: 5 ] = [ 'b' ]
    >>> print (a)
    [0, 1, 2, 'b', 5, 6, 7, 8, 9]
    >>> # 替换了起始索引 = 3本身的值,
    >终止索引=5及其以后的值都紧跟在插入值后面,
    >索引=4处的值伴随着索引 = 3的值一起被替换掉了
    

    3、插入元素值

    切片这里,最困惑的就是没理解替换元素值、和插入元素值两者的区别,现在恍然大悟,替换的原理如上所述,接下来插入元素值其实很简单,只要保持,终止索引、起始索引是同一个值再进行赋值就可以了
    (1)插入一个元素

    // An highlighted block
    >>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> print (a)
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> a [6:6 ] = ['c', 'd', 'e', 'f','g']
    >>> print (a)
    [0, 1, 2, 3, 4, 'b', 'c', 'd', 'e', 'f', 'g', 5, 6, 7, 8, 9]
    >>> #插入多个元素,其他原本的元素值和个数都不发生改变
    

    (2)插入多个元素,甚至字符串

    // An highlighted block
    >>> a = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> print (a)
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> a [ 3: 3] = [ 'hello , world!']
    >>> print (a)
    [0, 1, 2, 'hello , world!', 3, 4, 5, 6, 7, 8, 9]
    

    4、选择切片位置

    (1)取索引值为偶数的位置进行切片

    // An highlighted block
    >>> a = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> print(a)
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> a [ : : 2]
    [0, 2, 4, 6, 8]
    >>> # 选取索引值为偶数的位置进行切片
    

    (2)选取索引值为奇数的位置进行切片

    // An highlighted block
    >>> a = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> print(a)
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> a [ 1: :2]
    [1, 3, 5, 7, 9]
    >>> # 选取索引值为奇数的位置进行切片
    

    综上,就是今天学习python切片的小结,记录完成!

    展开全文
  • python 切片操作新理解

    2018-09-22 16:59:10
    好多Python书籍中对切片操作的讲解,都不够系统,不够详细。本文档系统详细地给出了理解和记忆Python中关于切片操作的方法思路,希望对你有所帮助。
  • 本文实例讲述了Python切片索引用法。分享给大家供大家参考,具体如下: 在Python中,可以用用简单的方括号加一个下标的方式访问序列的每一个元素,这种方式称之为切片操作符,切片操作符有三种形式: [],[:],[::] ...
  • 理解切片基本用法: 首先需要明白,可迭代对象,按照正数索引(正序)是从0开始的,按照负数索引(逆序)是从-1开始的。>>> astring = ‘Hello world’>>> astring[0:2]‘He’>>> 可见,这种情况下,给切片操作一个...
  • 本文实例讲述了Python切片操作。分享给大家供大家参考,具体如下: 我们基本上都知道Python的序列对象都是可以用索引号来引用的元素的,索引号可以是正数由0开始从左向右,也可以是负数由-1开始从右向左。 在Python...
  • Python切片操作

    千次阅读 2021-07-19 09:42:44
    二、Python切片操作的一般方式 一个完整的切片表达式包含两个“:”,用于分隔三个参数(start_index、end_index、step),当只有一个“:”时,默认第三个参数step=1。 切片操作基本表达式:object[start_index :...
  • 今天小编就为大家分享一篇使用python切片实现二维数组复制示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 本文实例讲述了Python切片工具pillow用法。分享给大家供大家参考,具体如下: 切片:使用切片将源图像分成许多的功能区域 因为要对图片进行切片裁剪,所以用到切片工具必不可少,在ubuntu下有很多的图片处理工具,如...
  • Python切片操作总结

    千次阅读 2020-12-23 05:25:08
    Python切片操作总结一、总结一句话总结:1、切片中索引是有正负的2、切片操作的时候先分析step,因为step正负表示方向,再看start_index和end_index,step为正表示从左到右切片,为负表示从右往左(如果此时起点参数...
  • python切片详解

    2021-04-26 18:59:58
    先从原理上分析切片运算:list的切片,内部是调用__getitem__,__setitem__,__delitem__和slice函数。而slice函数又是和range()函数相关的。给切片传递的键是一个特殊的slice对象。该对象拥有可描述所请求切片方位的...
  • Python切片透彻详解

    千次阅读 2020-08-04 00:58:04
    文章目录1、python切片概述2、以list为例演示切片操作3、使用切片为列表增加元素4、使用切片替换和修改5、使用切片删除列表中的元素6、其他对象的切片操作 1、python切片概述 在形式上,切片使用2个冒号分隔的3个...
  • 主要介绍了Python切片列表字符串如何实现切换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 彻底搞懂Python切片操作

    千次阅读 2020-12-24 08:42:19
    在利用Python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操作的有力武器。理论上而言,只要条件表达式得当,可以通过单次或多次切片操作实现任意切取目标值。...
  • python字符串 切片Python string supports slicing to create substring. Note that Python string is immutable, slicing creates a new substring from the source string and original string remains unchanged....
  • 主要介绍了python切片(获取一个子列表(数组))详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 143,226
精华内容 57,290
关键字:

python切片

友情链接: adm8211.rar