python(10): tuple


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,)
即在唯一的成员后面加上一个逗号。
至此,已经把python中的内置类型介绍完了。总结一下。
number支持各种算术运算。
string是顺序的,不可变的。
list是顺序的,可变的。
dictrionary是无顺序的,可变的
tuple是顺序的,不可变的。
str() list() dict() tuple()这几内置函数分别用于构造相应的类型。