切片

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

L=[0,1,2,3,4,5,6,7,8,9]

  取前3个元素,应该怎么做

笨方法,一个个列出来

>>> [L[0],L[1],L[2]]
[0, 1, 2]

  假如需要列出N个但是N很大

  循环方法

>>> r=[]
>>> n=3
>>> for i in range(n):
... r.append(L[i])
...
>>> r
[0, 1, 2]

  对于经常去指定索引范围的操作,用循环十分繁琐,因此pythone提供了切片操作符能大大简化操作

>>> L[0:3]
[0, 1, 2]

  L[0:3]表示,从索引0开始,直到索引3,但是不包含索引3,及索引0,1,2 一共3个元素

  如果第一个索引为0可以省略

>>> L[:3]
[0, 1, 2]

  也可以从索引1开始,取出2个元素来

>>> L[1:3]
[1, 2]

  类似也可以倒数切片,-1代表倒数第1个索引

>>> L[-2:]
[8, 9]
>>> L[-2:-1]
[8]

  默认取的间隔是1也可以定义,隔几个去一个

  从索引0取到索引9没隔两个取一个

>>> L[0:10:2]
[0, 2, 4, 6, 8]

  什么都不写,只写[:]就可以原样复制一个list

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

  tuple也是一个list,唯一区别是tuple不可变.tuple切片也是一个tuple

>>> (0,1,2,3,4,5)[:3]
(0, 1, 2)

  字符串'xxx'也是可以看成是一种list,也可以切片返回的是一个字符

>>> 'abcde'[:3]
'abc'

  

  切片函数slice

  语法

class slice(stop)
class slice(start, stop[, step])

  参数说明

start--起始位置  默认为None
stop--结束位置 自定义
step--间距 默认为None间距为1

  

>>> myslice=slice(3)
>>> myslice
slice(None, 3, None)
>>> L[myslice]
[0, 1, 2]
>>> print(myslice.start)
None
>>> print(myslice.step)
None
>>> print(myslice.stop)
3

  以上

myslice=(3)
等价于
myslice=slice(0,3,1)

  自定义间隔step

#切片范围为0-10 间距为2
>>> myslice=slice(0,10,2)
#查看参数
>>> myslice
slice(0, 10, 2)
>>> L[myslice]
[0, 2, 4, 6, 8]

  

Python3之切片及内置切片函数slice的更多相关文章

  1. 自学Python3.3-函数分类(内置函数补充)

    自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...

  2. python3 内置常用函数系列一

    python3 内置了一系列的常用函数, python英文官方文档详细说明:点击查看, 为了方便查看,将内置常用的函数的记录一下来. Python3版本所有的内置函数: 1.abs() print(a ...

  3. 浏览器内置Console函数使用详解

    浏览器内置Console函数比较好用:Chrome 和 FireFox(Firebug插件) 利用此功能可以像直接在面板里面运行JS一样(写法不同而已) 一.显示信息的命令 Firebug内置一个co ...

  4. javascript笔记整理(回调、递归、内置顶层函数)

    1.回调函数(通过函数的指针来调用函数,把一个函数的指针做为另一个函数的参数,当调用这个参数的时候,这个函数就叫做回调函数) a.通过指针来调用 function aa(a,b,fun){ retur ...

  5. 【学习】js学习笔记:内置顶层函数eval()的兼容用法

    今天学了一个内置顶层函数,eval();其作用是将字符串转换成javascript命令执行,但必须符合语法,否则会报错. 如果写成window.eval(),则其定义的变量会在全局生效. 但是,在IE ...

  6. 学习angularjs的内置API函数

    angularjs的内置API函数有很多,如isString()判断给定的对象是否为字符串,如果是返回 true,反之返回false:isNumber()判断给定的对象是否为数字,如果是返回 true ...

  7. PHP内置安全函数一览

    内置安全函数 filter_var函数 根据参数中的过滤类型进行过滤,如过滤Email类型的,则符合的字符串返回字符串,不符合的返回False. urldecode函数 写这个函数是特别为了提醒注意, ...

  8. Python descriptor 以及 内置property()函数

    Python Descriptor  1, Python Descriptor是这样一个对象 它按照descriptor协议, 有这样的属性之一 def __get__(self, obj, type ...

  9. Oracle SQL常用内置系统函数总结

    Oracle数据库  内置系统函数主要分为以下类别:数学函数.字符串函数.日期函数.转换函数.聚合函数.分析聚合函数 一.数学函数 ------------返回数字       abs(n):返回数字 ...

随机推荐

  1. [Angular] Lazy Load CSS at runtime with the Angular CLI

    Ever had the need for multiple "app themes", or even to completely dynamically load CSS ba ...

  2. nginx配置url伪静态

    rewrite 规则 定向路径 重写类型; 举例: rewrite  (.*)/web/(.*)-(.*)-(.*).html$  $1/web/index.php?r=$2/$3/$4  last; ...

  3. MySQL服务优化参数设置参考

    l 通用类: key_buffer_size 含义:用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写). 影响:对于MyISAM表的影响不是很大,MyISAM会使用系统的缓存来存储 ...

  4. learning scala How To Create Implicit Function

    println("Step 1: How to create a wrapper String class which will extend the String type") ...

  5. Qt在pro中实现条件编译

    https://www.cnblogs.com/Braveliu/p/5107550.html https://blog.csdn.net/simonforfuture/article/details ...

  6. splay树 1285 宠物收养所

    #include<cstdio> #include<iostream> using namespace std; int shu[80004][2],n,size,root,k ...

  7. mysql中 where与having的区别

    having子句与where有相似之处但也有区别,都是设定条件的语句.在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行.而where子句在查询过程中执行优 ...

  8. java 根据年月获取当前年月的最后一天,获取当前年月有多少天

    new Date( "2019-08-" + 1)   获取2019年8月的最后一天   结果为--2019-08-31 new Date(2019, 8, 0).getDate( ...

  9. known_hosts有什么用?

    一.问题描述 当我连接我的服务器的时候,返回信息如下 二.问题分析 返回的信息是什么意思? IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! ...

  10. 用Fiddler模拟低速网络环境(弱网)

    原文链接:http://caibaojian.com/fiddler.html 有时候宽频网路用习惯了… 在开发的过程就比较少去考虑最佳化的问题… 但当有人反应说「你的网页好慢」 甚至当网路速度慢,会 ...