1. 程式人生 > >python的list和tuple

python的list和tuple

list

Python的內建資料型別。list是一種有序的集合,可以隨時新增和刪除其中的元素(ArrayList?)

舉例:列出一個班的所有同學:classmates=['Amily','BlackBerry','Candy','Emma']

變數classmates就是一個list,len()函式可以獲得list元素的個數

 可以直接使用下標獲取元素

但是當超出範圍以後就會報越界錯誤:IndexError。下標從0開始,到 len(classmates)-1 結束,還可以直接用 classmates[-1] 直接獲取最後一個元素,-2

是倒數第二個,-3是倒數第三個

list可變有序,可以往list末尾追加元素(append(Element)),也可以指定下標位置插入元素insertIndexElement))

刪除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 ' ]的物理存放位置,只是存放的指標而已。