Python基础:元组
元组(tuple)特点:
1.元组是以圆括号“()”包围的数据集合,不同成员以“,”分隔。通过下标进行访问
2.不可变序列,可以看做不可变的列表,与列表不同:元组中数据一旦确立就不能改变(所以没有类似列表的增删改操作,只有基本序列操作)
3.支持任意类型,任意嵌套以及常见的序列操作
4.元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变
5.tuple没有像列表一样有append/extend/remove/pop等增删改操作,它存在的目的就是不想让别人修改它
元组常用使用方法:
>>> t = () #空元组 >>> t =('a',) #单个元素元组,注意逗号必须 >>> t =('a','b','c',)
其他同序列基本操作:分片,索引:
>>> print t[0] a >>> print t[-1] c >>> print t[:2] #分片打印从0开始到第2个元素,注意不包含第二个 ('a','b')
对元组的操作并不会对原来的元组造成影响:
>>> print t+('d','e') ('a', 'b', 'c', 'd', 'e') >>> print t * 2 ('a', 'b', 'c', 'a', 'b', 'c') >>> print t.index('a') 0 >>> print t.count('b') 1
列表元组转换,在这里列表和元组能够相互转换是因为他们内部接收的都是一个序列,而不是一个指定的列表或者元组:
>>> l = [1,2,3] >>> lt = tuple(l) >>> print lt (1, 2, 3)
字符串转元组之后得到字符元组序列:
>>> print tuple('hello') ('h','e','l','l','o')
元组的用途:
1.赋值
>>> t = 1,2,3 #等价 t = (1, 2, 3) >>> x, y, z = t #序列拆封,要求左侧变量数目和右侧序列长度相等
2.函数多个返回值
>>> def test(): >>> return (1,2) >>> x, y = test()
3.传参
>>> def print_list(l): >>> t = tuple(l) >>> dosomething()
4.字符串格式化
>>> print ("Hi my name is %s, I'm %d years old" % ('stanley',2)) Hi my name is stanley, I'm 2 years old
元组相比其他类型的优点:
1.性能:
tuple比列表操作速度更快
2.不可变性:
对不需要的数据进行“写保护”,使代码更加安全
不可变性,若在程序中以列表形式传递对象集合,可能在任何地方被改变,使用元组,则不能
不可变性只适用于元组本身顶层而非其内容,例如元组内部的列表可以修改