每日励志寄语

不要活在过去的阴影里,把每一天当作人生的新一天,生活才会多彩多姿。

python中所有序列都可以进行一些特定操作,包括索引、分片、序列相加、乘法、成员资格、长度、最小值和最大值。

索引

序列是python中最基本的数据结构,序列中的每个元素都分配一个数字,代表它在序列中的位置,第一个索引是0,第二个索引是1,以此类推。序列中所有元素都是有编号的,从0开始递增,可以通过编号分别对序列的元素进行访问。下面通过交互输入的方式介绍一个通过编号获取元素的例子:

通过实例可以看出,序列中的元素从0开始,从左向右依自然顺序编号,元素可以通过编号访问。获取元素的方式为:在变量后加中括号,在中括号中输入所取元素的编号值。上面的实例是从左向右通过编号获取元素的,是否可以从右向左通过编号获取元素呢?下面我们继续通过上个实例来试验一把:

可以看到,python序列也可以从右开始索引,最右边的元素索引值为-1,从右向左递减。在python中,从左向右索引称为正数索引,从右向左索引称为负数索引,使用负数索引时,python会从最后一个元素开始计数,最后一个元素的位置编号是-1.其实不定义变量可以按照索引输出相应的值,如下实例所示:

通过实例可以看出,直接使用索引,不定义变量进行索引也是可以的。

分片

索引是用来对单个元素进行访问的,使用分片可以对一定范围内的元素进行访问,分片通过冒号相隔的两个索引来实现,实例如下:

由实例结果可以看出,分片操作既支持整数索引,也支持负数索引。分片操作的实现需要提供两个索引作为边界,第一个索引的元素包含在分片内,第二个索引的元素不包含在分片内。取出最后3个元素,实例如下:

由以上输出结果可以看出,num的最大索引编号应该为7,编号8指向的是第9个元素,是一个不存在的元素,但是由于在最后一个元素之后,因此能得到最后一个元素。使用负数取出最后3个元素,实例如下:

结果没有输出最后一个元素,再试试使用索引0作为最后一个元素的下一个元素,实例如下:

结果输出了一个空序列。事实上,只要在分片中最左边的索引比它右边的索引晚出现在序列中,结果就是一个空序列。比如上例中,-3代表倒数第3个元素,0代表第一个元素,倒数第3个元素比第一个元素晚出现,即排在第一个元素后面,所以得到的结果是一个空序列。可以使用下面的方式取得最后一个元素,实例如下:

使用正数所以取得前3个元素,实例如下:

取得整个序列,实例如下:

进行分片时,分片的开始和结束点都需要指定,用这种方式取连续的元素没有问题,但若要取序列中不连续的元素就比较麻烦,比如要取序列中的所有奇数,通过以上的方法就不能实现了。对于上面这种情况,python提供了另外一个参数“步长”,该参数默认隐式设置为1,下面看一个显示设置的实例:

通过最后一个参数“步长”设置为2,就可以取出序列中的所有奇数了。同样取出所有奇数,也可以如下方式的写法:

如果步长设置为负数呢?如下实例所示:

结果使用负数步长与使用正数步长取得的结果相反。对于正数步长,python会从序列的头部开始向右提取元素,直到最后一个元素,对于负数步长,则是从序列的尾部开始向左提取元素,直到第一个元素。正数步长必须让开始点小于结束点,而负数步长必须让开始点大于结束点。使用负数步长时,设置第二个索引为空才能取到序列的第一个元素。

序列相加

在python通用序列中,使用加号可以进行序列的连接操作,如下实例所示:

由上面的输出结果可以看出,数字序列可以和数字序列通过加号连接,连接后的结果还是数字序列,字符串序列也可以通过加号连接,连接后的结果还是字符串序列。数字序列是否可以和字符串序列相加呢?

由上面的结果可以看到,数字序列和字符串序列不能通过加号连接。由试验结果可以得知:只有类型相同的序列才能通过加号进行序列连接操作,不同类型的序列不能通过加号进行序列连接操作。

乘法

用一个数字乘以一个序列会生成新的序列,在新的序列中,原来的序列将被重复乘以的数字次,这就是序列中的乘法,实例如下所示:

从输出结果可以看到,生成的新序列被重复了对应的次数,而不是进行了数学中的乘法运算。在python中,如果要创建一个重复序列,就可以像上面的示例一样乘以一个想要的序列长度的数字,这样可以快速得到需要的列表,非常方便。空列表可以简单通过两个中括号[ ]表示,表示里面什么东西都没有,如果想创建一个占用10个或更多元素的空间,却不包括任何有用内容的列表,可以像上面的示例一样乘以10或对应的数字,得到需要的空间列表,也很方便。如果要初始化一个长度为x的序列,就需要让每个编码位置上都是空值,此时需要一个值代表空值,即里面没有任何元素,可以使用None,None是python的内建值,确切含义就是“这里面什么也没有”,例如:

从示例可以看到,python中的序列乘法可以帮助我们快速做一些初始化操作。序列乘法做一些重复操作、空列表和None初始化操作还是很方便的。

成员资格

为了检查一个值是否存在序列中,python为我们提供了in运算符。in运算符用于检验某个条件是否为真,并返回检验结果,检验结果为真返回True,结果为假返回False。这种运算符称作布尔运算符,返回的真值叫作布尔值。下面通过实例介绍in的用法:

由上面的输出结果可以看到,使用in可以很好地检测字符或数字是否在对应的列表中,并且可以看出,数字类型不能在字符串类型中通过in进行成员资格检测,而字符串类型可以在数字列表中通过in进行成员资格检测。

长度、最小值和最大值

python为我们提供了长度、最大值和最小值的内建函数,对应的内建函数分别为len、max和min。

下面通过实例介绍这3个函数的用法:

由上面的结果可以看到,len函数返回序列中所包含元素的数量,max和min函数分别返回序列中最大和最小的元素。在该实例中,max和min函数的参数不是一个序列,而是以多个数字直接作为参数,此处直接求多个数字的最大值和最小值。

往期推荐

005 Python基础:运算符

004 Python基础:变量和关键字

003 Python基础:数据类型

002 Windows操作系统下如何搭建Python环境?

为什么大家都在学Python?

序列每天从0开始_006 Python基础:通用序列操作相关推荐

  1. Python基础--通用序列操作

    Python 继续 Python包括6种内建的序列,分别是:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象.我们将逐步进行介绍. 今天主要介绍一下通用序列操作.放之四海而 ...

  2. python基础之序列类型的方法——列表元组

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  3. Python基础语法 序列

    序列 序列是一块用于存放多个值的连续内存空间,并且按一定顺序排列,每个值(元素)都分配一个数字,称为索引或位置 在Python中序列结构主要有列表.元组.集合.字典和字符串 序列通用操作 (1)索引: ...

  4. Python基础03 序列

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! sequence 序列 sequence(序列)是一组有顺序的元素的集合 (严格的 ...

  5. python 什么是序列_从零起步学Python——什么是序列?

    おかえり!欢迎回来! 今天我们要学习的是序列以及一些通用的操作,你--准备好了吗? 一.什么是序列? 序列是python的最基本数据结构. "X=1",X是一个变量,值为1: &q ...

  6. python基础------文件读写操作、re、os和sys模块

    1. 文件读取 1.1 file文件 file文件读取:只能写入字符串,如果要写入字符串以外的数据,先将他转换为字符串,文件内的数据不容易操作 #文件打开 file.open() #文件关闭 file ...

  7. python基础:序列(列表、元组、字符串)、函数、字典、集合

    Python语言运行环境: windows linux unix Macos等等 博客记录内容: Python3的所有语法.面向对象思维.运用模块进行编程.游戏编程.计算机仿真. Python是什么类 ...

  8. Python基础__Python序列基本类型及其操作(1)

    本节考虑的Python的一个中要的内置对象序列, 所谓的序列即一个有序对象的集合.这里的对象可以是数字.字符串等.根据功能的不同将序列分为字符串.列表.元组,本文将以下这几种对象做一些介绍. 一. 字 ...

  9. python迭代器创建序列_第五章:Python基础の生成器、迭代器、序列化和虚拟环境的应用...

    本课主题 生成器介紹和操作实战 迭代器介紹和操作实战 序例化和反序例化 Json 和 Pickle 操作实战 字符串格式化的应用 创建虚拟环境实战 本周作业 生成器介紹和操作实战 什么是生成器,生成器 ...

最新文章

  1. 时间就是金钱!Windows 上必装的 10 款高效软件
  2. 类库探源——System.Exception
  3. docker java 最小镜像_docker构建JDK最小镜像
  4. Android Studio 打开activity_main.xml不能正常显示
  5. TCP实现多线程下文件的上传
  6. [MSSQL]也说SQL中显示星期几函数
  7. 理解分布式和集群的区别
  8. Android WebView使用基础
  9. sklearn 相似度矩阵_利用sklearn计算文本相似性
  10. C语言游戏编程之反弹小球
  11. php如何生成伪静态url,Thinkphp里关于U函数生成URL伪静态
  12. 谷歌身份验证器的一次性验证_使用一次性密码创建和应用多因素身份验证策略
  13. 读 Timothy Gowers 之 Mathematics: A Very Short Introduction
  14. Android 仿微信全局字体大小调整
  15. Vue学习7-MinUI组件与项目托管到码云上
  16. 可否推荐一个香港主机?
  17. 面向对象设计原则_面向对象的设计原则
  18. 一个包含30行代码的Python项目:如何在您最喜欢的Twitcher流式传输时设置SMS通知...
  19. 一本入门深度学习的好书
  20. supervisor安装总结

热门文章

  1. JS对于JSON的增删改查操作
  2. 必要时进行保护性拷贝
  3. 缓存雪崩处理方法-双缓存思路
  4. WPF连接WF4的问题
  5. 终于开通了,呵呵,以后跟大家一起讨论
  6. C程序设计语言现代方法02:C语言基本概念
  7. 黑苹果论坛被封_给掌上电脑装上黑苹果,买到的人都觉得赚大了
  8. 定期定量采购_采购的四种方法
  9. cas内外网同时访问_科普:CAS 和 ABA
  10. git ssh配置文件 服务器_【GIT】日常开发中的这些Git技巧你知道吗?