tuple是python中一个相对简单的类型,它的特点是:有顺序的、不可变的。因此,很显然地tuple有像list 和string一样的 indexing和slicing(分片)的功能,可以通过标号对成员进行访问。同时由于tuple是不可变的,因此试图改变tuple成员的是非法的。 不过由于tuple中的成员可以是list,而list是可变的,因此改变tuple成员的成员是可行的。这怎么理解呢?tuple中保存的中是各个成员 的指针,所说的tuple不可变,也就是说指向各个成员的地址是不可变的。更改作为tuple成员的list里的成员,并不需要变更在tuple中指向这 个list的指针,因此tuple并没有改变。

内置函数tuple([seq])用于把seq转换成tuple。此外,与list和string不同,tuple没有专属的函数。

tuple的表示形式如下:

(成员1, 成员2…)

考虑只有一个成员的例子,(成员1),由于小括号也用于表达式的分组,这就会产生一个问题,当你写下了:

T=(23)

这一行代码的时候,python怎么知道你是要把23这个整数赋予T呢,还是要把只有一个成员的tuple给T呢。所以,python规定,这种形式表示把T赋为整数23。而只有一个成员的tuple应该用如下的方式表示:

T=(23,)

即在唯一的成员后面加上一个逗号。

4.总结一下:

list是顺序的,可变的;dictrionary是无顺序的,可变的;tuple是顺序的,不可变的。

三者最好是结合起来用,个有个的优点。

tuple特点:

1 有序的集合

2 通过偏移来取数据

3 属于不可变的对象,不能在原地修改内容,没有排序,修改等操作。

tuple类型转换

那为什么有列表还要有元组呢

元组不可变的好处。保证数据的安全,比如我们传给一个不熟悉的方法或者数据接口,
确保方法或者接口不会改变我们的数据从而导致程序问题。

def info(a):
'''一个我们不熟悉的方法'''
a[0] = 'haha'

a = [1,2,3]

info(a)

print a

想要了解更多python 元组的可以看下这篇文章

python视频教程