python的list和tuple
list
Python的內建資料型別。list是一種有序的集合,可以隨時新增和刪除其中的元素(ArrayList?)
舉例:列出一個班的所有同學:classmates=['Amily','BlackBerry','Candy','Emma']
變數classmates就是一個list,len()函式可以獲得list元素的個數
可以直接使用下標獲取元素
但是當超出範圍以後就會報越界錯誤:IndexError。下標從0開始,到 len(classmates)-1 結束,還可以直接用 classmates[-1] 直接獲取最後一個元素,-2
list可變有序,可以往list末尾追加元素(append(Element)),也可以指定下標位置插入元素(insert(Index,Element))
要刪除list末尾的元素,用pop()方法,返回值是最後一位元素
要刪除指定位置的元素,用pop(i)方法,i是索引位置(從0開始)
要把某個元素替換成別的元素,可以直接賦值給對應的索引位置
list裡的元素的資料型別也可以不同!(動態語言的好處) list元素也可以是另一個list(classmates就是上述的list)
但
原因是list只作為一個元素而不拆開計算。
tuple
另一種有序列表,元組。tuple和list類似,但是tuple一旦初始化就不能再修改,沒有append方法和insert方法,pop也沒有,只讀陣列
特別注意:
定義空元組可以使用 t= ( ) ,這時列印結果是 ()
但如果 t=(1),列印結果就是1,因為這樣定義的tuple不是元組,而是數字1,因為括號()既可以表示tuple也可以表示數學中的小括號,Python規定這種情況下按照小括號進行計算,是計算,結果是1,
為了避免這種情況規定 t= ( 1,) 加個逗號。為了統一,在只顯示一個元素時tuple都會加個逗號。
怎樣實現tuple可變?
簡單,tuple裡面塞一個list進去就可以了。
t=( 1 , 2 , [ ' A ' , ' B ' ] , 3 )
要改變tuple:
t [ 2 ] [ 0 ] ='X'
t [ 2 ] [ 1 ] ='Y'
這樣即可改變tuple。原理是t中的list位置指向list [ ' A ' , ' B ' ]的物理存放位置,只是存放的指標而已。