PythonTip >> 博文 >> python

Python3.2官方文档教程---元组与序列

zihua 2014-04-10 15:04:06 点击: 708 | 收藏


我们看到列表和字符串有许多相同的属性,例如索引和切片操作符。以下是两个关于序列数据类型的例子。由于 python 是一种不断演变的语言,其他的序列数据类型可以被添加。现在已经有一种标准的序列数据类型:元组

一个元组是由一些被逗号分隔的熟知组成的。例如:

>>> t = 12345, 54321,  hello!

>>> t[0]

12345

>>> t

(12345, 54321,  hello! )

>>> #  元组也可以嵌套

... u = t, (1, 2, 3, 4, 5)

>>> u

((12345, 54321,  hello! ), (1, 2, 3, 4, 5))

>>> #  元组是不可变的

... t[0] = 88888

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError:  tuple ’  object does not support item assignment  元组不支持元素赋值,

>>> # but they can contain mutable objects:  但是可包含可变的对象。

... v = ([1, 2, 3], [3, 2, 1])

>>> v

([1, 2, 3], [3, 2, 1])

正如你看到的,当输出时元组常常被括号括起来,因此嵌套元组可以被正确解释。尽管常在输入时候用括号把它们包围,但是包或不包含都可以输入。 不可以对元组中的单个对象赋值,但是创建包含可变的对象的元组,比如列表。

尽管元组与列表有点相似,但是常常在不同情况和因不同的目的而使用。元组是不可变的,常常包含一个可以通过取出和索引访问元素的异构序列。列表是可变的,并且这些元素都是平等的,只能通过遍历逐次访问。 

一个特殊的问题就是仅包含一个或空的元组的构建。为了符合这些规则,这语法有点特别之处。每个空元组可以被一对空括号所创建。含一个值的元组可以用一个值加上”,”进行创建。 (用括号包围单个值没有意义)。尽管看起来很丑陋,但是很有效的。例如:

>>> empty = ()

>>> singleton =  hello , # <-- note trailing comma

>>> len(empty)

0

>>> len(singleton)

1

>>> singleton

( hello ,)

语句  t = 12345, 54321,  hello! ’  是一个包含不同值的元组例子 : 值是  12345, 54321

and  hello! ’都放在同一个元组中。 

翻转元组的操作可以如下:

>>> x, y, z = t

序列拆封要求左侧的变量数目与序列的元素个数相同。 注意 可变 参数 其实 只是 元组 封装 序列 拆封 一个 结合

原文链接:http://www.tuicool.com/articles/Fn6JB3J

作者:zihua | 分类: python | 标签: python | 阅读: 708 | 发布于: 2014-04-10 15时 |