`

Python入门 切片

阅读更多

切片 (Java中的截取字符串和数组)

取一个list的部分元素是非常常见的操作。

比如,一个list如下:

>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']

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

笨办法:

>>> [L[0], L[1], L[2]]
['Adam', 'Lisa', 'Bart']

 

如果要去的数量多时,可以用循环:

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

>>> r = []
>>> n = 3
>>> for i in range(n):
...     r.append(L[i])
... 
>>> r
['Adam', 'Lisa', 'Bart']

对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。

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

>>> L[0:3]
['Adam', 'Lisa', 'Bart']

从索引0开始取,直到索引3,但不包括索引3.

如果第一个索引是0,可以省略:L[:3]

 只用一个:,表示取从头到尾,因此,L[:]实际上复制除了一个新的list。

切片操作还可以指定第三个参数:

>>> L[::2]
['Adam', 'Bart']

第三个参数表示每N个取一个,上面的 L[::2] 会每两个元素取出一个来,也就是隔一个取一个。

把list换成tuple,切片操作完全相同,只是切片的结果也变成了tuple。

 

倒序切片:

对于list,既然Python支持L[-1]取倒数第一个元素,那么它同样支持倒数切片,试试:

>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']

>>> L[-2:]
['Bart', 'Paul']

>>> L[:-2]
['Adam', 'Lisa']

>>> L[-3:-1]
['Lisa', 'Bart']

>>> L[-4:-1:2]
['Adam', 'Bart']

记住倒数第一个元素的索引是-1。倒序切片包含起始索引,不包含结束索引。

 

对字符串切片:

字符串 'xxx'和 Unicode字符串 u'xxx'也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串:

>>> 'ABCDEFG'[:3]
'ABC'
>>> 'ABCDEFG'[-3:]
'EFG'
>>> 'ABCDEFG'[::2]
'ACEG'

 

分享到:
评论

相关推荐

    python入门详细知识点

    最近在自学python,就顺便整理了一份xmind,其中大类包括python基础,函数,高级特性,函数式编程,模块,面向对象编程(OOP),面向对象高级编程,错误、调试、测试,IO编程,进程和线程总10个大类。基础里面又包括...

    Python基础入门教程.zip

    课程简介: 第一课 入门基础 Python简介 ...切片 列表推导 生成器 迭代器 第4课 面向对象基础 第5课 文件访问与函数式编程入门 第6课 高级面向对象 第7课 并发编程以及系统常用模块 第8课 常用第三方模块

    PYTHON从入门到精通.doc

    切片 迭代 列表生成式 生成器 函数式编程 高阶函数 匿名函数 装饰器 偏函数 模块 使用模块 安装第三方模块 使用__future__ 面向对象编程 类和实例 访问限制 继承和多态 获取对象信息 面向对象高级编程 使用__slots__...

    你的Python入门好帮手:一份包含了Python基础学习需要的知识框架 + 爬虫基础 + numpy基础

    以下是对Python入门的一些补充说明: 1. Python基础知识 - 变量、数据类型(整数、浮点数、布尔值、字符串、列表、元组、字典、集合) - 运算符和表达式 - 控制流程(if、for、while、break、continue) - 函数的...

    python 入门(2)字典的使用,伪查询系统

    NULL 博文链接:https://314649444.iteye.com/blog/2268647

    试题Python入门教程程序填空阅读填空程序试题.doc

    试题Python入门教程程序填空阅读填空程序试题 一、程序填空 1.完善程序实现以下功能并保存。 输出数组的最大值。 arr1 =[12, 435, 76, 24, 78, 54, 866, 43] ________ = -32768 for i in range(0,7): if ...

    史上最简单易学的Python自动化测试教程从基础与实战【柠檬班软件测试】PPT模板.pptx

    2python入门必备基础语法python入门必备基础语法 史上最简单易学的Python自动化测试教程从基础与实战【柠檬班软件测试】PPT模板全文共13页,当前为第3页。 logo 3python变量以及常用数字类型python变量以及常用数字...

    python入门学习基础内容

    p03_标准数据类型、索引 & 切片 p04_赋值 & 深拷贝 & 浅拷贝 p05_运算符 & 优先级 p06_条件语句、循环语句、推导式 p07_列表、字典、集合迭代问题 p08_函数、封包&解包、命名空间&作用域、高阶函数、递归函数

    python入门详细学习资料(配运行截图).doc

    包含python从安装,到python基础(字符串,列表,元组,字典,字符串,切片,函数,文件),面向对象,各个小知识点,配备代码以及运行截图.

    python基础教程 第三版 中文 高清 pdf

    2.2.2 切片 2.2.3 序列相加 2.2.4 乘法 2.2.5 成员资格 2.3 列表:Python的主力 2.3.1 函数 list 2.3.2 基本的列表操作 2.3.3 列表方法 2.4 元组:不可修改的序列 2.5 小结 2.5.1 本章介绍的新函数 2.5.2...

    02-python-入门-数据类型-数字变量-字符串-索引和分片

    python学习笔记,包括python入门-数据类型-数字变量-字符串-索引和分片

    python入门【前菜】

    python入门前菜基础知识语言语义缩进不是大括号万物皆对象注释函数调用和对象方法调用变量传递引入二元运算符和比较运算符标量类型数值类型字符串类型数据结构和序列元组列表添加和移除元素合并列表排序切片 ...

    python入门【numpy】

    python入门【numpy】numpy :ndarray创建ndarrayarray函数其他函数ndarray数据结构运算索引和切片数学和统计方法排序唯一化随机数numpy中产生随机数的方法常用分布 numpy 是 python 语言的一个扩展程序库,支持大量的...

    Python自动化运维入门教程(24集).zip

    6.Python.3开发环境的部署-Python虚拟环境的安装和使用Linux版 7.开发环境的部署-Python3解释器介绍和pythonl的简单使用 8.变量-变量命名规范和特性cmproj. 9.Python.3变量-多元复制和其他特性 10数据类型-序列类型...

    python-我的名字叫python

    python基础入门资料,一共40页,适合零编程基础(知识点学习)和有编程基础者(知识点复习),内容包括python语法基本写法,变量,列表,函数,类,高级功能(切片,lamda等); 学习时长:零基础(累计5小时),有基础(累计2小时)

    Python入门_浅谈字符串的分片与索引、字符串的方法

    下面小编就为大家带来一篇Python入门_浅谈字符串的分片与索引、字符串的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    python视频教程下载

    教程名称:python视频教程课程目录:【】001-下载安装及初步入门.avi【】002-第一集补充及1,2章习题-01.avi【】003-eclipse的使用介绍及debug入门.avi【】004-python基础及第三章练习题-01.avi【】005-python对象01-...

    python数据分析师全套课程84讲

    2.Python使用入门(上)-第一章2节.mp4 3.Python使用入门(下)-第一章3节.mp4 4Python数据类型-第一章4节.mp4 5Python数据结构之列表-第一章5节.mp4 6Fython数据结构之元组和集合-第一章6节,mp4 7Fython数据结构之字典...

    Python入门——组合数据类型

    文章目录第一部分 列表 list1.1 列表的表达 []另一种生成方式:list(可迭代对象)range()1.2 列表的性质列表的长度——len(列表)列表的索引——与同为序列类型的字符串完全相同列表的切片——与字符串完全相同1.3 ...

Global site tag (gtag.js) - Google Analytics