元组作为python另一种内置的基本数据类型,与列表List有很多相似之处。元组的形式是用括号括起,元素之间逗号分隔,如( a, b, c, f )。不过元组创建之后不能直接修改(这里后面详细讲解)。
1、创建元组:
tuple1=(1,2,3,4,5,6)
tuple2=() //创建空元组
tuple3=2,3,4,5,6 //这种没有显示使用括号,默认就是tuple类型
tuple4=(1,) //像这种只有一个元素的,为了消除歧义,后面显示加一个逗号
元组的访问与列表类似,都是有一个索引,通过索引访问,也含有切片特性。
2、访问元组中的元素:
a = tuple1[1] //获取元组中索引为1即第二个元素的值,即2
3、遍历元组:
for key in tuple1:
4、切片:
tuple1[2:5] //返回元组索引2到索引5之间的元素(含2不含5,以下类似)
tuple1[-2] //返回倒数第二个元素
tuple1[:5] //返回从头开始到第五个元素(不含索引5)
tuple1[2:] //返回索引2开始一直到结束的元素
5、删除元组:
元组单个元素是不允许删除的,我们只能删除整个元组。
del tuple3
6、其他:
cmp(tuple1, tuple2) //比较两个元组元素。
len(tuple) //计算元组元素个数。
max(tuple) //返回元组中元素最大值。
min(tuple) //返回元组中元素最小值。
tuple(seq) //将列表转换为元组。
7、关于元组元素不能修改:
这里说的元组元素不能修改是指我们定义了一个tuple1=(a,c,v,f)后不能通过索引直接修改元组的元素,比如我们不能这样操作:tuple[2]=12。
但是,如果我们的元组元素是一个list类型的,比如tupletest=(1,2,[3,4]),这时,我们可以这样操作,tupletest[2][1] = 5,这样tupletest就变成了(1,2,[3,5])。这看起来跟元组不能修改矛盾,其实并不矛盾。这里修改的其实是list而非tuple。tupletest中第三个元素依然是指向的原来的list,并没有指向新的list。