python切片操作方法的实例总结

目录
  • 前言
  • 一、切片的2种索引方向
  • 二、切片的操作方式
  • 三、一些基本操作
    • 1、切取单个对象
    • 2、切取整个列表
    • 3、步长step正负值 决定索引方向的一些案例
  • 四、进阶操作
    • 1.修改某个元素值
    • 2.替换元素值
    • 3、插入元素值
    • 4、选择切片位置
  • 总结

文章参考自:link.

前言

最近学习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切片操作方法的文章就介绍到这了,更多相关python切片操作方法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python numpy数组的索引和切片的操作方法

    NumPy - 简介 NumPy 是一个 Python 包. 它代表 "Numeric Python". 它是一个由多维数组对象和用于处理数组的例程集合组成的库. Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的. 也开发了另一个包 Numarray ,它拥有一些额外的功能. 2005年,Travis Oliphant 通过将 Numarray 的功能集成到 Numeric 包中来创建 NumPy 包. 这个开源项目有很多贡献者. NumPy 操作 使用Nu

  • Python高级特性切片(Slice)操作详解

    切片操作首先支持下标索引,通过[ N:M :P ]操作 索引正向从0开始,逆向从-1开始 N:切片开始位置 M:切片结束位置(不包含) P:指定切片步长,为正数表示按照指定步长正向切片,为负数反之 一.列表的切片操作 列表切片后还是列表 通过列表生成器定义一个列表: In [2]: a = [n for n in range(10)] In [3]: a Out[3]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 通过切片浅拷贝对象: In [4]: a[:] Out[4]:

  • Python列表切片操作实例总结

    本文实例讲述了Python列表切片操作.分享给大家供大家参考,具体如下: 切片指的是列表的一部分. 1 基本用法 指定第一个元素和最后一个元素的索引,即可创建切片 .Python 会在到达指定的第二个索引之前元素后停止 . books=['半生缘','往事并不如烟','心是孤独的猎手'] print(books[0:2]) 运行结果: ['半生缘', '往事并不如烟'] 2 未指定索引 如果没有指定第一个索引, 那么 Python 会默认从表头开始: books=['半生缘','往事并不如烟',

  • Python切片操作去除字符串首尾的空格

    下面通过实例代码给大家分享Python切片操作去除字符串首尾的空格的方法,具体内容如下所示: #利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法 def trim(s): while s[0:1]==' ': s=s[1:] while s[(len(s)-1):len(s)]==' ': s=s[:-1] return s s=input('请输入一个字符串:') print('去除首尾空格后',trim(s)) 知识点: •取一个list或

  • Python字符串切片操作知识详解

    一:取字符串中第几个字符 print "Hello"[0] 表示输出字符串中第一个字符 print "Hello"[-1] 表示输出字符串中最后一个字符 二:字符串分割 print "Hello"[1:3] #第一个参数表示原来字符串中的下表 #第二个阐述表示分割后剩下的字符串的第一个字符 在 原来字符串中的下标 这句话说得有点啰嗦,直接看输出结果: el 三:几种特殊情况 (1)print "Hello"[:3] 从第一个字

  • 对Python 数组的切片操作详解

    高级特性 切片操作:对list,tuple元素进行截取操作,非常简便. L[0:3],L[:3] 截取前3个元素. L[1:3] 从1开始截取2个元素出来. L[-1] 取倒数第一个元素出来. L[-10] 取后10个数 L[10:20] 取前11-20个数 L[:10:2] 取前10个数,每两个取一个 L[::5] 所有数,每5个取一个 L[:] 原样复制一个list tuple,字符串也可以进行切片操作 以上这篇对Python 数组的切片操作详解就是小编分享给大家的全部内容了,希望能给大家一

  • Python切片操作实例分析

    本文实例讲述了Python切片操作.分享给大家供大家参考,具体如下: 在很多编程语言中,针对字符串提供了截取函数,其实目的就是对字符串切片.Python没有针对字符串的截取函数,只需要切片操作就可以完成. 切片操作符是序列名后跟一个方括号,方括号中有3个可选的数字,并用冒号分割,数是可选的,而冒号是必须的. 切片操作符中的第一个数表示切片开始的位置,第二个数表示切片到哪里结束,第三个数表示切片步长. 如果不指定第一个数,Python就从序列首开始.如果没有指定第二个数,则Python会停止在序列

  • Python切片操作深入详解

    本文实例讲述了Python切片操作.分享给大家供大家参考,具体如下: 我们基本上都知道Python的序列对象都是可以用索引号来引用的元素的,索引号可以是正数由0开始从左向右,也可以是负数由-1开始从右向左. 在Python中对于具有序列结构的数据来说都可以使用切片操作,需注意的是序列对象某个索引位置返回的是一个元素,而切片操作返回是和被切片对象相同类型对象的副本. 如下面的例子,虽然都是一个元素,但是对象类型是完全不同的: >>> alist = [0, 1, 2, 3, 4, 5, 6

  • python切片操作方法的实例总结

    目录 前言 一.切片的2种索引方向 二.切片的操作方式 三.一些基本操作 1.切取单个对象 2.切取整个列表 3.步长step正负值 决定索引方向的一些案例 四.进阶操作 1.修改某个元素值 2.替换元素值 3.插入元素值 4.选择切片位置 总结 文章参考自:link. 前言 最近学习python切片,时而醍醐灌顶时而云里雾里,今天终于弄清楚了 python切片 里面自己经常疑惑的地方,记录一下,方便以后查看. 一.切片的2种索引方向 如果掌握切片方法,就能对所有目标值进行随意切取,然鹅可切片的

  • Python数据操作方法封装类实例

    本文实例讲述了Python数据操作方法封装类.分享给大家供大家参考,具体如下: 工作中经常会用到数据的插叙.单条数据插入和批量数据插入,以下是本人封装的一个类,推荐给各位: #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Eric.yue import logging import MySQLdb class _MySQL(object): def __init__(self,host, port, user, passwd, db):

  • python pandas dataframe 行列选择,切片操作方法

    SQL中的select是根据列的名称来选取:Pandas则更为灵活,不但可根据列名称选取,还可以根据列所在的position(数字,在第几行第几列,注意pandas行列的position是从0开始)选取.相关函数如下: 1)loc,基于列label,可选取特定行(根据行index): 2)iloc,基于行/列的position: 3)at,根据指定行index及列label,快速定位DataFrame的元素: 4)iat,与at类似,不同的是根据position来定位的: 5)ix,为loc与i

  • Python列表切片常用操作实例解析

    这篇文章主要介绍了Python列表切片常用操作实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最近在爬一个网站的文档的时候,老师要求把一段文字切割开来,根据中间的文本分成两段 故学习了一段时间的切片操作,现把学习成果po上来与大家分享 1.何为切片? 列表的切片就是处理列表中的部分元素,是把整个列表切开的方法. 切片可以说是整个列表中的重点内容,相信你在以后的Python项目中会经常使用到. 它的语法是: 2.简单介绍切片的几个常见操作

  • python切片作为占位符使用实例讲解

    我们提到切片的时候,一般想到的大多数是分割列表.其实它还可以对列表进行拼接,想必这点是很多人不知道的,这就是切片的占位符用法.留在原列表中,占据位置的同时起到拼接的作用.下面我们就切片和占位符的用法分别进行理解,然后带有切片作为占位符使用的实例代码. 1.切片说明 切片既可以作为独立对象被"取出"原序列,也可以留在原序列,作为一种占位符使用. 2.占位符的使用 拼接字符串的方法,其中三种格式化类的拼接方法(即 %.format().template)就是使用了占位符的思想.对于列表来说

  • python读写删除复制文件操作方法详细实例总结

    python读文件操作 1. read三种不同的方式 f = open('hello.txt') #'hello.txt'指的是文件的名称 while True: text = f.readline() #读取文件指针指向的哪一行内容,然后指针下移 if text: print(text) else: #当文读到最后一行,三个空字符串 print(len(text)) break f.close() #关闭文件,运行一下 f = open("hello.txt") line_list

  • Python切片工具pillow用法示例

    本文实例讲述了Python切片工具pillow用法.分享给大家供大家参考,具体如下: 切片:使用切片将源图像分成许多的功能区域 因为要对图片进行切片裁剪,所以用到切片工具必不可少,在ubuntu下有很多的图片处理工具,如 GIMP(Ubuntu的下的Photoshop),shotwell,shotter等等. 但是我想吧一张图片剪裁下来,用那些工具不怎么方便(其实可能是我没有找到而已),于是上网搜索资料,发现各式各类的工具,其中发现了pollow这款工具. 算是Python下的一个模块吧,这个模

  • Python 迭代器与生成器实例详解

    Python 迭代器与生成器实例详解 一.如何实现可迭代对象和迭代器对象 1.由可迭代对象得到迭代器对象 例如l就是可迭代对象,iter(l)是迭代器对象 In [1]: l = [1,2,3,4] In [2]: l.__iter__ Out[2]: <method-wrapper '__iter__' of list object at 0x000000000426C7C8> In [3]: t = iter(l) In [4]: t.next() Out[4]: 1 In [5]: t.

  • python之Character string(实例讲解)

    1.python字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串,l Python不支持单字符类型,单字符也在Python也是作为一个字符串使用. >>> var1 = 'hello python' #定义字符串 >>> print(var1[0]) #切片截取,从0开始,不包括截取尾数 h >>> print(var1[0:5]) hello >>> print(var1[-6:]

随机推荐