序列是指成员有序排列,可以通过下标偏移量访问的类型。Python序列包括:字符串、列表和元组。
序列的每个元素可以指定一个偏移量得到,多个元素是通过切片操作得到的。下标偏移量从0开始计数到总数-1结束。

序列类型操作符
这些操作符是对所有序列类型都适用的。

序列操作符  作用
seq[ind]  获得下标为ind的元素
seq[ind1:ind2]  获得下标从ind1到ind2的元素集合
seq * expr  序列重复expr次
seq1 + seq2  连接序列seq1和seq2
obj in seq  判断obj元素是否在seq中
obj not in seq  判断obj元素是否不再seq中

seq[ind]有下面这段代码

>>> lst = [1,2,3,4,5,6]
>>> exp = "abcdef"
>>> tub = ("apple","orange","banana","watermelon")
>>> print lst[2] #打印列表中下标为2的元素
3
>>> print exp[0] #三种序列的使用方式一致
a
>>> print tub[3]
watermelon
>>> print lst[-1]#负索引,以结束为起点
6
>>> print lst[6]#索引不能超出序列长度

Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
print lst[6]#索引不能超出序列长度
IndexError: list index out of range
>>> print [1,2,3,4,5,6][0] #可以不将序列赋值直接使用
1
>>> print 'abcde'[0] #可以不将序列赋值直接使用
a

上面涵盖了seq[ind]的几种使用方案。正索引的偏移数是 0 到(总元素数量-1),从首元素开始索引;负索引的偏移数是 -1 到 负的总元素数量,从尾元素开始索引。

但是这种索引方式只能索引一个元素,多个元素索引使用

sequence[start_index:end_index(:step)]

有如下代码

>>> lst = [1, 2, 3, 4, 5, 6]
>>> print lst[:] #省略两个坐标则从开始到结束
[1, 2, 3, 4, 5, 6]
>>> print lst[3:] #省略结束坐标
[4, 5, 6]
>>> print lst[:5] #省略开始坐标
[1, 2, 3, 4, 5]
>>> print lst[::2] #步长为2,隔一个取一个
[1, 3, 5]
>>> print lst[::-1] #反向序列
[6, 5, 4, 3, 2, 1]
>>> print lst[1:5:2] #从坐标1到坐标5之间,隔一个取一个
[2, 4]
>>> print lst[-5:-3]
[2, 3]
>>> print lst[-1:100]
[6]
>>> print lst[-6:-4] #负索引,并不负输出
[1, 2]
>>> print lst[-3:5] #正负索引同时存在时,坐标只代表位置,截取位置间的元素
[4, 5]
>>> print lst[:100] #索引可以超出序列长度
[1, 2, 3, 4, 5, 6]
>>> print lst[-5:100] #索引可以超出序列长度
[2, 3, 4, 5, 6]

关于切片运算,还有一个值得说的事,如果使用负索引:
>>> lst = [1,2,3,4,5,6,7]
>>> print lst[:-2]
[1, 2, 3, 4, 5]
>>> print lst[:-1]
[1, 2, 3, 4, 5, 6] >>> print lst[:0] []

当负索引是尾坐标时,我们永远无法截到最后一个元素,因为-1是负索引最大的值,如果使用0则会认为是正索引。

这种情况下,我们可以使用None来代替0的位置

>>> print lst[:None]
[1, 2, 3, 4, 5, 6, 7]

连接操作符 +

连接操作符允许把多个序列连在一起,但只能连接同样的对象。都是列表,都是字符串或都是元组

>>> num_lst = [1,2,3,4]
>>> mixup_lst = [567,'abc',[123,'aaa']]
>>> num_lst + mixup_lst
[1, 2, 3, 4, 567, 'abc', [123, 'aaa']]
>>> string = 'abcdef'
>>> num_lst + stringTraceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
num_lst + string
TypeError: can only concatenate list (not "str") to list

重复操作符(*)

>>> mixup_lst = [567,'abc',[123,'aaa']]
>>> string = 'abcdef'
>>> mixup_lst * 2
[567, 'abc', [123, 'aaa'], 567, 'abc', [123, 'aaa']]
>>> string * 3
'abcdefabcdefabcdef'
>>> mixup_lst * mixup_lstTraceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
mixup_lst * mixup_lst
TypeError: can't multiply sequence by non-int of type 'list'

* 后只能接数字,代表重复次数,否则都会错误

成员关系操作 in , not in

>>> mixup_list = ['a',123,['x',1.4,35]]
>>> 'a' in mixup_list
True
>>> 'x' in mixup_list
False
>>> 'x' in mixup_list[2]
True
>>> string = 'abcdef'
>>> 'a' in string
True
>>> 'bcd' in string
True
>>> 'abd' in string
False

以上是in的几种操作,用于判别元素是否属于这个序列。如果使用not in 则结果相反。

转载于:https://www.cnblogs.com/SRL-Southern/p/4771948.html

2015/8/30 Python基础(4):序列操作符相关推荐

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

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

  2. Python基础概念_3_操作符与表达式

    操作符与表达式 4 操作符与表达式 我们知道程序其实是代码段的组合,就像我们写的作文是一个个的段落堆积起来的,每一个段落又由句子组成,句子又包含"主谓宾定状补".本章我们就来讲讲程 ...

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

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

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

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

  5. 2015/8/29 Python基础(3):数值

    数字提供了标量储存和直接访问,是不可更改类型,每次变更数值会产生新的对象.Python支持多种数字类型,包括整型.长整型.布尔型.双精度浮点.十进制浮点和复数. 在Python中,变量并不是一个盒子, ...

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

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

  7. Python基础语法 序列

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

  8. Python基础03 序列

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

  9. python基础教程:操作符

    特殊的操作符: = :赋值 == :相等 != :不等 is :检查对象的同一性,如果两个变量名指向同一个对象,返回True 1,逻辑运算符 and :逻辑与 or :逻辑或 not :逻辑非 2,逻 ...

  10. 2015/8/26 Python基础(1):基本规则及赋值

    Python有如下的基本规则: #后表示注释 \n是行分隔符 \是继续上一行,将过长语句分开 :分号将两个语句连接在一行中 :冒号将代码头和体分开 代码块用缩进块的方式体现 不同缩进深度分隔不同的代码 ...

最新文章

  1. python爬虫贴吧_Python爬虫简单实现,贴吧图片一键下
  2. 飞秋下载2010正式版_飞秋下载
  3. SpringCloud config 配置中心集群配置以及整合消息总线BUS实现关联微服务配置自动刷新
  4. 安卓robot自动化测试包经常用的方法
  5. Android 爱心万花筒简单实现
  6. java 数组协变_java 数组协变
  7. 【nodejs学习】0.nodejs学习第一天
  8. js获取内网ip_WebRTC安全问题:私有IP与mDNS
  9. 图纸管理软件_企业图纸文档的安全管理与使用,是否遇到这些图纸管理问题?...
  10. 电子商务网站设计与实现
  11. 区块链数据分析1-如何查询token余额
  12. 三维坐标要建一个4*4的矩阵?
  13. 单身职场人士怎么利用晚上时间提高自己?
  14. 中央关于深化统计管理体制改革提高统计数据真实性的意见(摘要)
  15. iphone更新运营商服务器,iphone更新运营商配置文件操作方法
  16. 测试开发面试(八)——进程与线程、python数据结构、数据库
  17. 常用的在线JS解密工具
  18. 电脑重装系统-利用PE系统盘安装
  19. 修改360浏览器模式为极速模式
  20. 单片机原理及应用 实验一 计数显示器

热门文章

  1. jquery动态加载js/css文件方法
  2. 教你如何创建unity3d多个定时器,以及定时器的其他操作
  3. j2ee三大框架个人理解
  4. 太火了!MyBatis-Plus为啥这么牛?
  5. 你不知道的redis——主从复制,因为该命令redis作者曾摊上事
  6. NoSQL 已死:我们不需要他了
  7. AndroidDeveloper Weekly No.2
  8. 最适合程序员的电脑是什么?
  9. 压力测试与负载测试的区别
  10. Qt::FocusPolicy的使用