python数据类型-序列-元组
元组是一种不可变类型,元组可用作一个字典的key。
1.创建一个元组并进行赋值
atuple = (123, 'abc', ('inner', 'tuple'), 7-9j)
2.访问元组中的值
元组的切片操作和列表一样,用方括号作为切片操作([]),里面写上索引值或者索引范围
1 >>> atuple[:2] 2 (123, 'abc')
3.更新元组
元组是不可变类型,不能更新或改变元组的元素,可通过现有元组的元组片段再构造一个新的元组。
1 >>> atuple 2 (123, 'abc', ('inner', 'tuple'), (7-9j)) 3 >>> atuple = atuple[1], atuple[0], atuple[3], atuple[2] 4 >>> atuple 5 ('abc', 123, (7-9j), ('inner', 'tuple'))
4.移除一个元组的元素以及元组本身
删除一个单独的元组元素是不可能的,del atuple
5.元组操作符和内建函数
元组的对象和序列类型操作符和内建函数和列表完全一样。
创建、重复、连接操作:=、*、+
成员关系操作、切片操作:in、not in、[:]
内建函数:str()、len()、max()、min()、cmp()、list()
操作符:<、>、==
6.元组的特殊特性
虽然元组对象本身是不可变的,但这不意味着元组包含的可变对象也不可变了。
1 >>> t = (['xyz', 123], 23, -12.3) 2 >>> t 3 (['xyz', 123], 23, -12.300000000000001) 4 >>> t[0][1] = ['abc', 'def'] 5 >>> t 6 (['xyz', ['abc', 'def']], 23, -12.300000000000001) 7 >>>
7.默认集合类型
所有的多对象的、逗号间隔的、没有明确用符号定义的(比如用方括号表示列表和用圆括号表示元组)这些集合默认的类型都是元组。
1 >>> 'abc', 12 2 ('abc', 12) 3 >>> x, y = 1, 2 4 >>> x, y 5 (1, 2)
所有函数返回的多对象(不包括有符号封装的)都是元组类型,有符号封装的多对象集合其实是返回的一个单一的容器对象。
8.单元素元组
1 >>> type(('xyz')) 2 <type 'str'>
圆括号被重载了,被用作分组操作符,由圆括号包裹的一个单一元素首先被作为分组操作,而不是作为元祖的分界符,一个普通的方法是在第一个元素的后面添加一个逗号(,)来表明这是一个元组而不是在做分组操作。
1 >>> type(('xyz',)) 2 <type 'tuple'>
9.元组作为字典的关键字
不可变对象的值是不可变的,通过hash算法得到的值总是同一个值,这是作为字典键值的一个必要条件。