Python基础手册11——序列(元组&列表)

二、元组(Tuple)

元组是能够保存任意数目的任意Python 对象的容器。元组通过在圆括号中放置逗号分隔的Python对象来创建,创建完成后就不可以更改。一个空的元组可以由空的一对括号形成。如果确实想得到一个元祖,只要在关闭圆括号之前加上一个逗号就可以了。作为特殊情况,在不会引起语法冲突的情况下,Python允许忽略元组的圆括号。
Python基础手册11——序列(元组&列表)_第1张图片

虽然元组是被定义成不可变的,但这并不影响它的灵活性。元组的不可变性提供了某种完整性。这样你可以确保元组在程序中不会被另一个引用修改,而列表就没有这样的保证了。

注意: 可以使用圆括号创建空的元组,但是无法使用圆括号创建单一元素的元组。因为圆括号也被用作分组操作符,由圆括号包裹的一个单一元素首先被作为分组操作,而不是作为元组的分界符。一个变通的方法是在第一个元素后面添一个逗号(,)来表明这是一个元组而不是在做分组操作。

Python基础手册11——序列(元组&列表)_第2张图片

Python基础手册11——序列(元组&列表)_第3张图片


1、默认集合类型

所有的多对象的,逗号分隔的,没有明确用符号定义的(比如说像用方括号表示列表和用圆括号表示元组一样)等等,这些集合默认的类型都是元组。
Python基础手册11——序列(元组&列表)_第4张图片

所有函数返回的多对象(不包括有符号封装的)都是元组类型。注意,有符号封装的多对象集合其实是返回的一个单一的容器对象。
Python基础手册11——序列(元组&列表)_第5张图片

为了避免令人讨厌的副作用,建议总是显式的用圆括号表达式表示元组或者创建一个元组。


2、元组内建方法

Python基础手册11——序列(元组&列表)_第6张图片


(1)返回元素的位置

Python基础手册11——序列(元组&列表)_第7张图片


(2)返回元素的个数

Python基础手册11——序列(元组&列表)_第8张图片




三、列表(List)

列表是能够保存任意数目、任意类型的Python对象的位置相关的有序集合。列表所包含的每一项都保持了从左到右的位置顺序。列表没有固定的大小,其大小是可变的,因为列表是可变的,所以它支持原处修改的操作。当你在原处修改一个列表时,可能会影响一个以上指向他的引用。列表通过在方括号中放置逗号分隔的Python对象来创建。(注意,一般不会需要创建长度为0或1的列表)

列表和元组有几处重要的区别。列表元素用中括号([ ])包裹,元素的个数及元素的值可以改变。元组元素用小括号(( ))包裹,本身不可以更改(尽管他们的内容可以)。元组可以看成是只读的列表。

超出列表末尾之外的索引会导致错误,对列表末尾范围之外赋值也同样会导致错误。

Python的核心数据类型的一个优秀的特性就是他们支持任意的嵌套。能够以任意的组合对其进行嵌套,并可以多个层次就行嵌套。

Python基础手册11——序列(元组&列表)_第9张图片


1、列表解析表达式

处理序列的操作和列表的方法中,Python还包括了一个更高级的操作:列表解析表达式。它提供了一种处理像矩阵这样结构的强大工具。列表解析表达式是一种通过对序列中的每一项运行一个表达式来创建一个新列表的方法。列表解析式编写在方括号中的(提醒你在创建列表这个事实),并且由使用了同一个变量名的(这里是row)表达式和循环结构组成。


2、常用列表内建方法

因为列表是可变的,大多数列表的方法都会就地改变主体列表对象,而不是创建一个新的列表。

Python基础手册11——序列(元组&列表)_第10张图片


(1)拷贝

list.copy() 为浅copy,列表中的列表在 copy 的时候只 copy 列表中保存的地址,即默认为浅copy。

列表的直接赋值会直接把列表对象的地址赋值给变量。

要使用深copy,需要导入 copy 模块,调用 copy.deepcopy() 方法。具体的深浅copy的介绍会在下一章《序列类型操作》中详细介绍。

Python基础手册11——序列(元组&列表)_第11张图片


(2)将列表的首尾颠倒

list.reverse()
原地翻转列表


(3)排序

list.sort(func=None,key=None, reverse=False)
以指定的方式排序列表中的成员,如果 func 和 key 参数指定,则按照指定的方式比较各个元素,如果 reverse 标志被置为True,则列表以反序排列。


(4)列表的元素个数


(5)在列表的最后追加列表

list.extend(seq)
把序列 seq 的内容添加到列表中


(6) 弹出最后一个元素

list.pop(index=-1)
删除并返回指定位置的对象,默认是最后一个对象

Python基础手册11——序列(元组&列表)_第12张图片


(7)在列表的最后追加一个元素

list.append(obj)
向列表中添加一个对象 obj


(8)返回列表中指定元素的序列下标

list.index(obj, i=0, j=len(list))
返回 list[k] == obj 的 k 值,并且 k 的范围在 i<=k


(9)返回列表中指定元素的个数

***list.count(obj) ***
返回一个对象 obj 在列表中出现的次数


(10)删除列表中的指定元素

list.remove(obj)
从列表中删除对象 obj


(11)在制定位置插入指定的元素

list.insert(index, obj)
在索引量为 index 的位置插入对象 obj。


(12)清空列表


《Python基础手册》系列:

Python基础手册 1 —— Python语言介绍
Python基础手册 2 —— Python 环境搭建(Linux)
Python基础手册 3 —— Python解释器
Python基础手册 4 —— 文本结构
Python基础手册 5 —— 标识符和关键字
Python基础手册 6 —— 操作符
Python基础手册 7 —— 内建函数
Python基础手册 8 —— Python对象
Python基础手册 9 —— 数字类型
Python基础手册10 —— 序列(字符串)
Python基础手册11 —— 序列(元组&列表)
Python基础手册12 —— 序列(类型操作)
Python基础手册13 —— 映射(字典)
Python基础手册14 —— 集合
Python基础手册15 —— 解析
Python基础手册16 —— 文件
Python基础手册17 —— 简单语句
Python基础手册18 —— 复合语句(流程控制语句)
Python基础手册19 —— 迭代器
Python基础手册20 —— 生成器
Python基础手册21 —— 函数的定义
Python基础手册22 —— 函数的参数
Python基础手册23 —— 函数的调用
Python基础手册24 —— 函数中变量的作用域
Python基础手册25 —— 装饰器
Python基础手册26 —— 错误 & 异常
Python基础手册27 —— 模块
Python基础手册28 —— 模块的高级概念
Python基础手册29 —— 包

`

你可能感兴趣的:(Python基础手册11——序列(元组&列表))