Python入門之元組
一、什麼是元祖
元祖是不可變類型(列表是可變類型)
爲什麼要設計元祖這樣不可變類型?因爲一旦創建了不可變類型的對象,對象內部的所有數據就不能被修改了,這樣避免了
由於修改數據導致的錯誤。此外,對於不可變類型的對象,在多任務環境下同時操作對象時不需要加鎖。
二、元祖的創建
#可以帶() 也可以不帶 t = ('python',15) print (t) # ('python', 15) print (type(t)) # <class 'tuple'> t1 = 'python3',19,20 print (t1) # ('python3', 19, 20) print(type(t1)) #<class 'tuple'> # 空元祖的創建 t2 = () print (t2) # () t2 = tuple() print (t2) # () ''' 元祖是不可修改的,但內部元素如果是可變類型,那麼該元素的值是可以修改的 ''' t3 = ('python',[1,2,3],15) t3[1][1] = 9 print (t3) #('python', [1, 9, 3], 15)
三、只有一個元素的元組
只有一個元素時,給元祖賦值的時候要加上逗號,不然會按照字符的原有類型賦值
t = (18) t1 = ('python') print (type(t)) # <class 'int'> 只有一個元素,不加逗號18爲int類型 print (type(t1)) # <class 'str'> 只有一個元素,不加逗號'python'爲str類型 t2 = ('python3',) print (type(t2)) # <class 'tuple'> 只有一個元素,也要加逗號
四、多變量的賦值
賦值運算符的左邊可以是一個所有元素都爲變量的元組或列表,從而一次給多個變量賦值
a,b = 7,8 print (a,b) # 7 8 print (type(a)) # <class 'int'> a,b = [8,9] print (a,b) # 8 9 print (type(a)) # <class 'int'> [a,b] = [1,2] print (a,b) #1 2 print (type(a)) # <class 'int'> (a,b) = 55,11 print (a,b) # #55 11 print (type(a)) # <class 'int'> ''' 可以在變量前加入*,這樣多餘的元素會賦值到這個變量上,如下所示 多餘的元素會形成一個列表賦予給變量 ''' *a,b,c = 1,2,3,4,5 print (a,b,c) # [1, 2, 3] 4 5 print (type(a)) # <class 'list'> ''' 正常的值替換將a和b的值互換,操作如下。 學習了多變量賦值,可以直接a,b = b,a 原理在於先計算右邊的值,然後再賦予給左邊 ''' a = 5 b = 6 tmp = a #先設置一箇中間變量tmp接收a的值,然後tmp = a,a = b,b = tmp a = b b = tmp print (a,b) #6 5 a = 5 b = 6 a,b = b,a #先計算右邊數的值,然後在賦值給左邊 print (a,b) # 6 5