今天跟你们分享一下Python里面tuple数据类型的学习
ps:list数据类型,以前是写在了jianshu上,暂时我也尚未搬过来,因此贴上连接吧 python
Python数据类型 - list : https://www.jianshu.com/p/5fe...安全
tuple,即元组。是Python内置的一种有序列表。跟list相比,tuple有比较特别的地方。app
那tuple有什么好处呢?由于不可变,因此代码更加安全。若是能够,尽可能用tuple代替list。函数
t = () t # 调用 输出:()
以下示例,注意比较“t”与“s”的区别,经过type()函数也能够清楚的看到。学习
>>> t = ('xyz') >>> t 'xyz' >>> type(t) <class 'str'> >>> >>> s = ('abc',) >>> s ('abc',) >>> type(s) <class 'tuple'> >>>
ps:原本贴的图片,发现不方便看 -_-spa
t = (1,2,'abc') t # 调用 输出:(1,2,'abc')
>>> t = ('a','b',['c','d']) # tuple里包含可变的list >>> t [2][0] 'c' >>> t[0][1] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: string index out of range
>>> t [2][0] = 'C' # 修改tuple中的list类型值 >>> t ('a', 'b', ['C', 'd'])
>>> t[0][0] = 'e' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' object does not support item assignment
块一中修改tuple中list的元素,tuple没有变,变的是list的元素。
tuple一开始指向的list并无改变成别的list,id(list)没有变化。因此,tuple所谓的“不变”,是说tuple的每一个元素指向永远不变,可是指向的list内容是可变的。code
>>> h = ('a','b','c') >>> h1 = ('A',) + h[1:] # 用slice方法取得列表的一部分,实际上是从新给对象赋值 >>> h1 ('A', 'b', 'c')
Python中,赋值能够采用序列赋值的方式,以下对象
>>>a,b = 1,2 >>>a,b >>>(1,2)
python函数返回值是一个tuple类型的值。返回值为一个时,括号省略;返回值为多个时,为同一个tuple接收,并把位置赋给相应的值。
若要返回一个list类型,则显示用“[]”进行修改。排序
def swap(x,y): return y,x # return [y,x] 或者 return(y,x) >>> swap(2,3) (3, 2)
实际效果以下图:教程
判断元素i是否在tuple_a中,返回True or False。
if i in tuple_a : <action>
经过切片来访问元组的元素,它的切片操做跟列表list是同样,也是经过“切片操做符[]”+索引index来访问。
元组还能够进行一些比较操做符的操做,好比“>”、“<”、“==”等,跟数学里同样,对应元素值跟对应元素值进行比较,返回True或者False。
“大于”和“小于”只能比较同类型的tuple,以下示例:
>>> a = (1,2) >>> b = ('a','b') >>> c = (1,2,3) >>> a > b Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'int' and 'str' >>> >>> a == c False
你们能够随意去操做一下,就能清楚了,不算是重点。