Python 内部序列类型

list 类型和操作

表(list)是 Python 内部定义的可变序列类型。对于 list(表)类型的对象,可以执行上面可变序列的所有操作。

用 list(seq) 可以从参数 seq(任何其他序列类型的对象)构造出相应的表。

最常用的一类 list 是所有元素的类型都相同的 list。list 还有其他典型使用(参见前面介绍,课堂讨论,参考书和手册,特别是标准库手册 4.6.4 节)。

tuple类型(元组类型,标准库手册4.6.5节)

元组(tuple)是不可变的序列类型。元组对象的成员不仅可以是数、字符串,也可以是表或其他复合对象。另外,元组也可以嵌套,其成员也可以是元组对象。

所有适用于不可变序列的操作都可以用于元组对象。但由于元组对象不可变,建立好的元组是不能修改的,既不能修改其成员,也不能改变其结构。

元组的语法形式就是顺序写出的一些表达式,用逗号分隔。对这样的一串表达式求值就得到一个元组对象。元组的输出形式总包含一对圆括号,括起它的所有成员。如果要写一个只包含一个成员的元组,就需要在这个成员之后写一个逗号,使之有别于一个其他表达式。

可以在描述元组的时候加上一对括号。但需要说明,一个表达式描述的是一个元组,关键在于其具有“逗号分隔的表达式序列”的基本形式,与是否加了括号无关。例如,1, 2, 3 和 (1, 2, 3) 描述的是同样的元组;但 (x + 3) 不是一个单元素元组,相应的单元素元组必须写成 (x + 3,)。

还有一个情况需要注意:在写函数调用时,f(a, b) 是用两个参数调用函数 f 的表达形式,而 f((a, b)) 则是用一个元组作为实际参数调用函数f的表达形式。例如,list(1, 2, 3) 是错误的,因为 list 只能接受一个参数;而 list((1, 2, 3)) 就能构造出一个表(这里的参数是元组)。

空元组就是没有元素的元组,用一对圆括号表示。

同样可以用类型名 tuple 构造元组,例如 tuple([1, 2, 3]) 构造出一个包含三个整数元素的元组。tuple() 构造出一个新的空元组。

人们常用元组把若干不同类型的对象打包,做成一个对象。

使用元组时要特别注意其不可变性质。

range类型(区间类型,标准库手册4.6.6节)

range 类型的对象表示一个有穷连续区间里的整数的序列,是不可变对象。有关 range 的情况前面有介绍,作为 for 语句中循环变量的顺序取值序列是 range 对象最常见的使用形式。

另外,人们还常通过 range 生成和类型转换构造 list 或其他复合对象。

range 支持非变动序列的一些操作,但不能做连接操作(不能用 +)或重复操作(不能做乘一个整数的乘法),不能比较相等/不等,不能比较大小。

不能做加法和乘法的原因是这些运算对 range 对象不封闭(两个 range 对象的运算结果可能无法表示为一个 range 对象)。不能比较两个 range,大概是因为这种比较没什么用。

本页及相关页面(除另声明者外)由裘宗燕创建维护,可自由用于各种学习活动。其他使用需得到作者许可。