【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. ...
随机推荐
- telnet服务搭建
Telnet服务器安装(centos7系统环境) 查看系统是否已安装telnet rpm -qa | grep telnettelnet-0.17-48.el6.x86_64telnet-server ...
- css 易错点总结
心得:思路清晰,细致,耐心. 慢慢来,先规划,再动手,先整体后局部,规划好整个页面先. 命名合理,且小心重复 防止标签嵌套错误,以及忘记闭合 行高要在字体后面,如下: 正确:font:400 15px ...
- 定时重启tomcat
写个简单的定时重启,弄了一上午,主要是crontab里面奇怪 #!/bin/bash p=`ps -ef |grep tomcat |head -n 1|awk -F" " '{p ...
- AES对称加密和解密(转)
AES对称加密和解密 package demo.security; import java.io.IOException; import java.io.UnsupportedEncodingExce ...
- c# 判断时间是否在 某一时间段内
protected bool getTimeSpan(string timeStr) { //判断当前时间是否在工作时间段内 string _strWorkingDayAM = "08:30 ...
- Reference.svcmap: Could not load file or assembly
Reference.svcmap: Could not load file or assembly 在添加服务的时候出现如上错误, 把这个勾去掉就可以了.
- VS2010 修改模板文件,增加默认注释
在开发过程中往往需要在每一个页面(类)增加注释等等内容,VS2010中可以修改模板,在原有模板中增加一个类,会引用System等等命名空 间,以及一些程序集.下面我们来看看如何增加自己需要一些说明,比 ...
- Consul之:服务注册与发现
一.服务的管理(注册与发现)有三种方式: 1:通过配置文件的方式静态注册2:通过HTTP API接口来动态注册(spring cloud使用方式,spring cloud中使用的是consul api ...
- [UE4]Background Blur,背景模糊
一.Blur Strength:模糊强度 二.背景是模糊的,在Background Blur前面的控件二不会模糊. 三.可以调整顺序,让按钮也模糊.然后按钮被模糊了,但是按钮还可以被点击的,Backg ...
- 记一次sshd启动报错,Failed to start OpenSSH server daemon.
sshd -t [root@mysql5-slave proj]# sshd -t @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...