注:本文档主要是学习《Python核心编程(第二版)》时做的资料整理。

1.序列

序列的成员是有序排列的,并且可以通过下标偏移量访问到它的一个或者几个成员,包括字符串(普通字符串和Unicode字符串)、列表和元组类型。下标偏移量从0开始到总元素-1结束。

1.1操作符

1.1.1成员关系操作符

成员关系操作符:用来判断一个元素是否属于一个序列。in/not in操作符返回值一般就是True/False,语法为: 对象 [not] in 序列

>>> list = [1, 2, 3]

>>> 1 in list

True

>>> 4 in list

False

1.1.2连接操作符

允许把一个序列和另一个相同类型的序列做连接sequence1 + sequence2,这种方法不是最高效的;

>>> str1 = 'hello'

>>> str2 = 'world'

>>> str1 + str2

'helloworld'

对于字符串,可将所有的子字符串放在一个列表或可迭代对象中,然后调用join方法来把所有的内容连接在一起以节约内存;对列表来说,可用列表的extend()方法来把两个或者多个列表对象合并。

>>> str3 = ''

>>> str3.join([str1, str2])

'helloworld'

1.1.3重读操作符(*)

sequence * copies_int,copies_int必须是一个整型,不能是长整型。该操作符返回一个新的包含多份原对象拷贝的对象。

>>> s1 = 'ha'

>>> s1*3

'hahaha'

1.14切片操作符([], [:], [::])

访问某一个数据元素的语法:sequence[index]。范围从0到偏移值最大值(比序列长度少一),用len()函数可以得到序列长度,实际的范围是0<= index <= len(sequence)-1。使用负数索引,范围是-1到序列的负长度-len(sequence),-len(sequence) <= index <= -1

>>> print ('Faye', 'Leanna', 'Daylen')[1]

Leanna

访问多个元素:sequence[starting_index: ending_index],可得到从起始索引到结束索引之间的一个"片"元素。

1.15用步长索引来进行扩展的切片操作

sequence[starting_index: ending_index, step]

>>> s = 'abcdefghijk'

>>> s[::-1]

'kjihgfedcba'

>>> s[::2]

'acegik'

>>>

>>> a = 'abcde'

>>> for i in [None] + range(-1, -len(a), -1):

... print a[:i]

...

abcde

abcd

abc

ab

a

序列操作符

作用

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中

1.2序列内建函数

1.2.1类型转换函数

内建函数list()、str()和tuple()被用作在各种类型之间转换,这些函数都是工厂函数,将对象作为参数,并将其内容(浅拷贝)到生成的对象中。

一旦一个对象被建立,就不能改变其身份或类型,把一个列表对象传给list()函数,会创建一个这个对象的浅拷贝,然后将其插入新的列表中。所谓浅拷贝就是只拷贝这个对象的索引,而不是创建了一个对象。

函数

含义

list(iter)

把可迭代对象转换为列表

str(obj)

把obj对象转换为字符串(对象的字符串表示法)

unicode(obj)

把对象转换为Unicode字符串(使用默认编码)

basestring()

抽象工厂函数,其作用仅仅是为str和Unicode函数提供父类,所以不能被实例化,也不能被调用

tuple(item)

把一个可迭代对象转换为一个元组对象

>>> obj = list(x for x in range(10))

>>> obj

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

>>> str(obj)

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

>>> tuple(obj)

(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

>>> unicode(obj)

u'[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]'

1.2.2可操作函数

序列类型可用的内建函数如下:

函数名

功能

enumerate(iter)

接受一个可迭代对象作为参数,返回一个enumerate对象(同时也是一个迭代器),该对象生成由iter每个元素的index值和item值组成的数组

len(seq)

返回seq的长度

max(iter, key=None) or max(arg0, arg1,…, key=None)

返回iter或(arg0, arg1,…)中的最大值,如果指定了key,这个key必须是一个可以传给sort()方法的,用于比较的回调函数

min(iter, key=None) or min(arg0, arg1,…, key=None)

返回iter或(arg0, arg1,…)中的最小值,如果指定了key,这个key必须是一个可以传给sort()方法的,用于比较的回调函数

sorted(iter, func=None, key=None, reverse=False)

接受一个可迭代对象,返回一个有序的列表,可选参数func、key和reverse的含义跟list.sort()内建函数的参数含义一样

sum(seq, init=0)

返回seq和可选参数init的总和,其效果等同于reduce(operator,add,seq,init)

zip(it0, it1, … , itN)

返回一个列表,其第一个元素是it0、it1…这些元素的第一个元素组成的一个元组,第二个。。。依此类推

后面详细介绍字符串、列表和元组时再详细介绍这些函数。

python类型-序列的更多相关文章

  1. python类型-序列-字符串

    python中单引号和双引号的含义是一样的.字符串是一种直接量或者说是一种标量,是不可变类型,字符串是由独立的字符组成的,并且这些字符可以通过切片操作顺序的访问. python实际有三类字符串:通常意 ...

  2. python类型-序列-元组

    元组是一种不可变类型,元组可用作一个字典的key. 1.创建一个元组并进行赋值 atuple = (123, 'abc', ('inner', 'tuple'), 7-9j) 2.访问元组中的值 元组 ...

  3. python类型-序列-列表

    列表类型也是序列式的数据类型,可通过下标或者切片操作来访问某一个或某一块连续的元素. 列表的元素是可变的,可包含不同类型的元素,列表类型的元素可以是另一个序列类型. 1.创建列表类型数据并赋值 列表使 ...

  4. Python基本序列-字典

    Python 基本序列-字典 字典(dict)是"键-值 对"的无序可变序列,字典中的每个元素包含两部分,"键"和"值". 字典中的&quo ...

  5. Python常见序列详解

    一.Python中序列的分类 常见序列类型包括字符串(普通字符串和unicode字符串),列表和元组.所谓序列,即成员有序排列,可通过下标访问. 二.Python序列通用操作 下面我们将分别以字符串. ...

  6. python类型检测最终指南--Typing模块的使用

    正文共:30429 字 预计阅读时间:76分钟 原文链接:https://realpython.com/python-type-checking/ 作者:Geir Arne Hjelle 译者:陈祥安 ...

  7. Python基础---序列对象

    一.序列简介 数据结构是通过某种方式组织在一起的元素的集合. 容器(Container)是一种Python的数据结构,基本上是包含其他对象的任意对象.序列和映射(如字典)是两类主要的容器.集合(Set ...

  8. python类型学习

    python类型学习 标准类型 数字 Integer 整型 Boolean 布尔型 Long integer 长整型 Floating point real numer  浮点型 Complex nu ...

  9. C Python类型互换

    从Python到C的转换用PyArg_Parse*系列函数,int PyArg_ParseTuple():把Python传过来的参数转为C:int PyArg_ParseTupleAndKeyword ...

随机推荐

  1. Linux 内核接口

    USB 端点被绑在接口中. USB 接口只处理一类 USB 逻辑连接, 例如一个鼠标, 一个键盘, 或者一个音频流. 一些 USB 设备有多个接口, 例如一个 USB 扬声器可能有 2 个接口: 一个 ...

  2. vue移动端图片上传压缩

    上传压缩方法 import {api} from '../../api/api.js'; import axios from 'axios'; export function imgPreview ( ...

  3. Team Foundation Server 2015使用教程【2】:默认团队成员添加

    官方文档:https://www.visualstudio.com/en-us/docs/setup-admin/add-users

  4. 非GUI-Qt程序运行后显示Console(简单好用:在pro文件中加入: CONFIG += console)

    ----我的生活,我的点点滴滴!! 有很多时候,我们在程序中添加了好Debug信息,方便程序在运行期间打印出一些我们需要的信息或者,想用他来显示一些必要信息时, 那么console就太重要了,曾几何时 ...

  5. springboot-集成WebSockets广播消息

    一 WebScoketS 简介 RFC 6455 即 webSockets 协议提供了一种标准化的方式去建立全双工,双方面交流的通道在客户端和服务端甚至单一的TCP连接中进行通信: webSocket ...

  6. 0005 表格table

    第01阶段.前端基础.表格 表格 table 目标: 理解: 能说出表格用来做什么的 表格的基本结构组成 应用: 能够熟练写出n行n列的表格 能简单的合并单元格 ​ 表格作用: 存在即是合理的. 表格 ...

  7. 【重学Node.js 第4篇】实现一个简易爬虫&启动定时任务

    实现一个简易爬虫&启动定时任务 课程介绍看这里:https://www.cnblogs.com/zhangran/p/11963616.html 项目github地址:https://gith ...

  8. ELK学习实验005:beats的一些工具介绍

    一 背景需求 Nginx是一个非常优秀的web服务器,往往Nginx服务会作为项目的访问入口,那么,nginx的性能保障就会变得非常重要,如果nginx的运行出现了问题就会对项目有较大的影响,所以,我 ...

  9. mysql主从之基于mycat实现读写分离

    一 环境 1.1 结构 192.168.132.125 mycat 192.168.132.121  master 192.168.132.122  slave 主从已经配置完成 1.2 安装myca ...

  10. 【python小随笔】celery异步任务与调用返回值

    s1.py(配置任务文件) from celery import Celery import time my_task = Celery("tasks", broker=" ...