Python中的元组用英文“tuple”表示,是多个值的集合。
1 元组的定义
可以用两种方式定义元组:一种是带圆括号的方式,另一种是不带圆括号的方式。
1.1 带圆括号的方式使用带圆括号的方式定义元组的代码如下所示:
>>> t1 = (1,2,3) >>> type(t1)
从以上代码可以看出,变量t1的类型是tuple,即元组。使用圆括号定义t1时,元组中的元素用逗号分隔。
1.2 不带圆括号的方式使用不带圆括号的方式定义元组的代码如下所示:
>>> t2 = 1,2,3 >>> type(t2)>>> print(t1==t2) True
从以上代码中可以看出,使用两种方式分别定义的元组t1和t2,是相同的。
2 访问元组中的元素
可以通过索引来访问元组中的元素。代码如下所示
>>> print(t1[0]) 1 >>> print(t1[1]==t2[2]) False
需要注意的是,元组属于不可变(immutable)类型,因此不能通过索引来修改元组中的元素,代码如下所示。
>>> t1[0] = 10 Traceback (most recent call last): File "", line 1, in t1[0] = 10 TypeError: 'tuple' object does not support item assignment
此时的报错信息为“类型错误:元组对象不支持赋值操作”。
相关链接1 不可变类型与可变类型:不可变类型的对象具有固定的值,如果为该对象赋新的值,则需要创建一个新对象。数字、字符串和元组都属于不可变类型。相关代码如下:
>>> str1 = "hello" >>> id(str1) 2145021337328 >>> str1 = "world" >>> id(str1) 2144989705648
其中,变量str1的类型是字符串,该变量的初始值是“hello”,其id为2145021337328。当为str1赋新值(“world”)后,该变量的id变为2144989705648。因为字符串是不可变类型,所以为其赋新值后,实际上创建了一个新的对象(id发生变化)来保存这个新值。同理,可变类型的对象不具有固定的值,如果为该对象赋新的值,则不需要创建一个新对象。列表、集合、字典属于可变类型,相关代码如下:
>>> list1 = [1,2,3] >>> id(list1) 2145021492864 >>> list1[0]=10 >>> id(list1) 2145021492864
从以上代码可以看出,变量list1类型是列表,当其值发生变化时,其id不变,因为列表是可变类型。



