【python原理解析】python中分片的实现原理及使用技巧
首先:说明什么是序列?
序列中的每一个元素都会被分配一个序号,即元素的位置,也称为索引;在python中的序列包含:字符串、列表和元组
然后是:什么是分片?
分片就是通过操作索引访问及获得序列的一个或多个元素,也叫作切片。
如果序列中有N个元素,索引的范围,正序是:0到N-1,逆序是:-N到-1
分片的操作一般需要三个参数,例如获取a的第一个元素到第三个元素,则应该为:a[0,3,1]
其中0代表第一个元素的索引,3代表第三个元素的索引的后面的值,1代表递增数,也就是从0开始每一次加1来获取下一个元素,这个也可以通过for循环来实现
目前看到的对于分片来说,很明显的一个例子就是:分片可以实现逆序,通过下方的代码:
def f1():
list1 = [1,2,3,4,5]
list2 = list1[4::-1]
print list1
print list2
结果是:

递增数为2的代码如下:
def f2():
list1 = [1,2,3,4,5,6,7,8]
list2 = list1[2:7:2]
print list1
print list2
结果是:

按照负数索引值获取内容的代码如下:
def f3():
list1 = [1,2,3,4,5,6,7,8]
list2 = list1[-8:-3:1]
print list1
print list2
结果是:

在字符串中使用分片的情况如下:
def f4():
str1 = "good idea!"
str2 = str1[1:6:2]
print str1
print str2
结果是:

以上是关于get_slice的记录,下面是set_slice的记录:
def f5():
list1 = [1,2]
list1[1:4] = [11,3,4]
print "替换部分元素,并增加部分元素后:", list1
list2 = [1,2,3,4,5]
list2[2:4] = []
print "置空某些元素:", list2
list3 = [1,2,3,4]
list3[1:7] = [111]
print "右索引大于总长度,且右边的列表比左边的索引差值小:", list3
list4 = [1,2,3,4]
list4[2:3] = [5,6,7,8,9,10]
print "右边列表比左边的索引差值大:",list4
结果是:

【python原理解析】python中分片的实现原理及使用技巧的更多相关文章
- Request 接收参数乱码原理解析二:浏览器端编码原理
上一篇<Request 接收参数乱码原理解析一:服务器端解码原理>,分析了服务器端解码的过程,那么浏览器是根据什么编码的呢? 1. 浏览器解码 浏览器根据服务器页面响应Header中的“C ...
- python:解析js中常见的 不带引号的key的 json
首先要明晰一点,json标准中,key是必须要带引号的,所以标准json模块解析不带引号的key的 json就会抛错 不过有一些lib可以帮我们解析 如:demjson(链接) >>> ...
- 【Python】解析Python中的条件语句和循环语句
1.if语句 if语句有好几种格式,比如: if condition: statement 使用 if ... else ...: if condition: statement(1) else: s ...
- 【Python】 解析Python中的运算符
Python中的运算符相比较于传统的C/C++差别不是很大,主要是一些个别的运算符上的差别.包括:算术.比较.赋值.位.逻辑.成员.身份等.它们的优先级: 符号 说明 ** 指数(最高优先级) ~,+ ...
- 【Python】解析Python中的线程与进程
基础知识 线程 进程 两者的区别 线程的类型 Python 多线程 GIL 创建多线程 线程合并 线程同步与互斥锁 可重入锁(递归锁) 守护线程 定时器 Python 多进程 创建多进程 多进程通信 ...
- 【Python】解析Python中的异常操作
目录结构: contents structure [-] try,except,else,finally块 异常处理 使用except而不带任何异常类型 使用except而带多种异常类型 try-fi ...
- 【Python】解析Python中的文件操作
目录结构: contents structure [-] 简介 Python中的文件类型 内置函数的文件操作 open()函数 Mode 创建文本文件 读取文本文件 循环文件对象 关闭文件 With语 ...
- 【Python】解析Python中的装饰器
python中的函数也是对象,函数可以被当作变量传递. 装饰器在python中功能非常强大,装饰器允许对原有函数行为进行扩展,而不用硬编码的方式,它提供了一种面向切面的访问方式. 装饰器 一个普通的装 ...
- 【Python】解析Python中的迭代器
目录结构: contents structure [-] Iterator VS Iterable Itertools 模块 生成器(Generator) 在开始文章之前,先贴上一张Iterable. ...
随机推荐
- 使用miniconda创建python虚拟环境
安装python指定环境 conda create -n oldboy python=3.6.5 安装环境的同时安装相应的包 conda create -n oldboy python=3.6.5 p ...
- PythonStudy——可变与不可变 Variable and immutable
ls = [10, 20, 30] print(id(ls), ls) ls[0] = 100 print(id(ls), ls) print(id(10)) print(id(20)) print( ...
- CSS 社区的解决方案,对比
在众多解决方案中,没有绝对的优劣.还是要结合自己的场景来决定. 我们团队在使用过 scss 和 css modules 后,仍然又重新选择了使用 scss.css modules 虽然有效解决了样式冲 ...
- Python手记(二)
1.map函数 map函数用于将指定的数据成员都使用指定函数进行处理. 比如: map(float, arr) map(square, arr) 这两个函数分别将arr中成员转换为float类型,以及 ...
- C语言数组指针
C语言中的数组指针与指针数组: ·数组指针一.区分 首先我们需要了解什么是数组指针以及什么是指针数组,如下: int *p[5];int (*p)[5];数组指针的意思即为通过指针引用数组,p先和*结 ...
- 读取 exe dll 自定义config 文件
ExeConfigurationFileMap map = new ExeConfigurationFileMap(); map.ExeConfigFilename = GPARAM._configF ...
- SpringBoot Web开发(5) 开发页面国际化+登录拦截
SpringBoot Web开发(5) 开发页面国际化+登录拦截 一.页面国际化 页面国际化目的:根据浏览器语言设置的信息对页面信息进行切换,或者用户点击链接自行对页面语言信息进行切换. **效果演示 ...
- [UE4]Native Widget Host
一.Native Widget Host是一个容器,它可以包含一个Slate UI 二.Native Widget Host应该用在当你需要把一个Slate UI 放到UMG中的时候,只有这个时候才需 ...
- [编程小技巧]Notepad++中如何实现文本对比功能?
1.打开Notepad++插件中心 2.安装Compare 3.按提示重启Notepad++ 4.点击Compare比较临近的两个文件 5. 取消比较 6 Comp ...
- Oracle 学习笔记 (七)
一.数据库的启动 启动数据库的三个阶段: nomount, mount,open mount 阶段:. 1.读参数文件 2.分配内存 3.启动后台进程 4.初始化部分v$视图 mount 阶段: 读参 ...