一、概述

序列是Python中最基本的数据结构,C语言中没有这样的数据类型,只有数组有点类似,但序列跟数组差异比较大。

序列的典型特征如下:

  1. 序列使用索引来获取元素,这种索引方式适用于所有序列;
  2. 序列中的每个元素都有编号,即其位置或索引,其中第一个元素的索引为0,第二个元素的索引为1,依此类推;
  3. 序列的访问也可以从最后一个元素开始,它的序号是-1,倒数第二个是-2,依此类推。

Python内置了多种序列,最常用的是三种:字符串、列表和元组。列表和元组很类似,的主要不同在于表是可以修改的,而元组不可以。这意味着列表适用于需要中途添加元素的情形,而元组适用于出于某种考虑需要禁止修改序列的情形。禁止修改序列通常出于技术方面的考虑,与Python的内部工作原理相关,这也是有些内置函数返回元组的原因所在。在你自己编写程序时,几乎在所有情况下都可使用列表来代替元组。一种例外情况是将元组用作字典键,在这种情况下,不能使用列表来代替元组,因为字典键是不允许修改的。

二、序列的操作方法

有几种操作适用于所有序列,包括索引、切片、相加、相乘和成员资格检查。另外,Python还提供了一些内置函数,可用于确定序列的长度以及找出序列中最大和最小的元素。

1、 索引:序列中额每个元素都可以通过索引来访问,使用方法就是:

序列[索引],这里序列包括字符串常值、变量和函数返回值。

如:

‘Hello’[0]的值为’H’,‘Hello’[-1]的值为’o’

如s=’Hello’,s[0]、s[-1]这些访问方式都是可以的

c=input(‘Input your name:’)[0] #取得输入名字的首字符

2、 切片(slicing):就是从序列中连续的切一个片段出来进行访问,也就是访问特定范围内的元素。为此,可使用两个索引,并用冒号分隔。两个索引来指定切片的边界,其中第一个索引指定的元素包含在切片内,但第二个索引指定的元素不包含在切片内。切片有如下使用方法(举例中s=’Hello’):

  1. 如果第一个索引指定的元素位于第二个索引指定的元素后面,结果就为空序列。注意这里是指元素后面是指元素在序列中的位置的后面,并不一定是后一个索引值小于前一个的索引值。如s[3:2]为空字符串’’,s[1:3]为字符串’el’,s[1:-1]= ‘ell’;
  2. 如果切片始于序列开头,可省略第一个索引。如果切片结束于序列末尾,可省略第二个索引。如s[:2]=’He’,s[1:]=’ello’
  3. 执行切片操作时,还可以指定另一个参数:步长,步长和两个索引之间用冒号分隔。在普通切片中,步长为1。如果指定的步长大于1,将跳过一些元素。例如,步长为2时,将从起点和终点之间每隔一个元素提取一个元素。步长可以为负数,即从右向左提取元素. 当省略起始和结束索引时,步长为正数时,它从起点移到终点,而步长为负数时,它从终点移到起点。如s[::2]为’Hlo’,s[::-1]为’olleH’;
  4. 使用切片赋值还可在不替换原有元素的情况下插入新元素,方法就是在要插入的索引位置n指定该切片起始都为n的切片等于要插入的新序列。由于字符串、元组都是不可修改的,因此相关例子到列表介绍时来说明。

    3、 拼接:可使用加法运算符来拼接相同类型的序列,一般而言,不能拼接不同类型的序列,如不能拼接列表和字符串,虽然它们都是序列。如s2=s+’,world!’,s2的值就是’Hello,world!’;

    4、 相乘:将序列与数x相乘时,将重复这个序列x次来创建一个新序列。如s1=s2*2,则s1的值是’ Hello,world!Hello,world!’

    5、 函数len、min和max,len返回序列包含的元素个数,而min和max分别返回序列中最小和最大的元素。如len(s)值为5,min(s)的值为’H’,max(s)的值为’o’

    6、 index方法:方法index在列表中查找指定值第一次出现的索引,如s.index(‘l’)返回2。

本节介绍了序列的基本概念,并以字符串为例简单说明了序列的特点和操作方法。由于字符串是不能修改的序列,因此部分序列的操作方法无法在此介绍,后续在进行列表的相关内容介绍时再补充相关内容。

第3章 Python的数据类型 第3.1节 功能强大的 Python序列概述的更多相关文章

  1. 第3章 Python的数据类型目录

    第3.1节 功能强大的 Python序列概述 第3.2节 Python列表简介 第3.3节 强大的Python列表 第3.4节 泛善可陈的元组 第3.5节 丰富的Python字典操作 第3.6节 Py ...

  2. python基本数据类型之字符串(四)

    python基本数据类型之字符串(四) 判断方法 python中有一类用来判断字符串形式的方法,该类方法有两个特点:(1)方法名都是is开头(除了startswith和endswith):(2)返回值 ...

  3. python基本数据类型之字符串(二)

    python基本数据类型之字符串(二) 替换方法 python中字符串的替换方法主要有:center.rjust\ljust.expandtabs.format\format_map(格式化).str ...

  4. Python开发【第二章】:Python的数据类型

    基本数据类型 一.整型 如: 18.73.84 整型具备如下功能: class int(object): """ int(x=0) -> int or long i ...

  5. Python开发【第二章】:数据类型

    基本数据类型 一.整型 如: 18.73.84 整型具备如下功能: class int(object): """ int(x=0) -> int or long i ...

  6. Python基本数据类型之字符串、数字、布尔

     一.数据类型种类 Python中基本数据类型主要有以下几类: Number(数字) String(字符串) Bool (布尔) List(列表) Tuple(元组) Sets(集合) Diction ...

  7. 四.python基础数据类型

    一.什么是数据类型? 什么是数据类型? 我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不 ...

  8. Python 入门之Python基础数据类型及其方法

    Python 入门之Python基础数据类型 1. 整型:int 用于计算,用于比较 (在赋值的时候先执行等号右边的内容) 1.1 整数的加 a = 10 b = 20 print(a + b) 结果 ...

  9. 每天学一点——python基本数据类型

    python基本数据类型 字符串类型(str) 字符串类型的数据一定是描述性质的,且由引号括起来的数据都是字符串数据(单引号.双引号.三引号.) 如下图 (简单易懂) 这里列举一些不明所以的问题 如图 ...

随机推荐

  1. 重拾python所要知道的一些主干知识点

    前言:因为有一段时间没有用python了,最近需要用到,只能回头过去看B站视频补一补,因为语言都是相通的,而且一些细节都可以去查表解决,所以呢,我们只需要知道一些python与其他语言的不同和常见的优 ...

  2. [MIT6.006] 10. Open Addressing, Cryptographic Hashing 开放定址,加密哈希

    前几节课讲散列表的时候,我们需要用Chaining,链接法需要用到指针pointer,但有一种方法可以不要Chaining和指针,还能在发生冲突时,为产生冲突的关键字寻找下一个"空" ...

  3. 《.NET 5.0 背锅案》第3集-剧情反转:EnyimMemcachedCore 无罪,.NET 5.0 继续背锅

    今天晚上基于第2集中改进版的 EnyimMemcachedCore 进行了发布,发布过程中故障重现,最大的嫌犯 EnyimMemcachedCore 被证明无罪,暂时委屈 .NET 5.0 继续背锅. ...

  4. Spring源码之事务(一)— TransactionAutoConfiguration自动配置

    总结: 在ConfigurationClassParser#parse()中会对deferredImportSelectorHandler进行处理(在处理@ComponentScan 自己所写@Com ...

  5. Notepad++安装教程

        1.官网下载 官方网站:https://notepad-plus-plus.org/downloads/ 上面有历史版本,一般就选择最新版下载 2.安装 [3]打开记事本进行设置: 设置--& ...

  6. 流量控制--5.Classless Queuing Disciplines (qdiscs)

    Classless Queuing Disciplines (qdiscs) 本文涉及的队列规则(Qdisc)都可以作为接口上的主qdisc,或作为一个classful qdiscs的叶子类.这些是L ...

  7. React native路由跳转navigate、push、replace的区别

    由于没有系统的去学习RN,对路由跳转了解不多,只是跟着项目在做,抽点时间简单学习一下RN路由跳转方法区别,总结如下: 如上图,外部是一个栈容器,此时A页面在最底部,navigate到B页面,为什么此时 ...

  8. 通过phpmyadmin拿下webshell

    废话: 1.听说网上卖手机的网站很多是诈骗的,搜到一个499元货到付款的手机网站.有点像诈骗,但倒觉得他是在收集用户信息 2.把网站扔到御剑,搜到phpmyadmin的后台,试试下账号密码居然都是默认 ...

  9. CleanMyMac X是如何进行Mac文件清理的

    Mac系统进行文件清理,一般是直接将文件拖动入"废纸篓"回收站中,然后通过清理回收站,就完成了一次文件清理的操作,但是这么做并无法保证文件被彻底删除了,有些文件通过一些安全恢复手段 ...

  10. 如何用EasyRecovery恢复受损的SD卡?

    SD卡的主要功能是拓展便携式设备.包括:数据相机.手机及其他的多媒体播放器等的存储空间,缓解设备本身的存储压力.即便是在产品内存已经逐渐增加的情况下,还是拥有一大批的忠实用户. 很多用户反应,SD卡使 ...