程式中的資料通常是以變數來儲存,那如果有大量的資料需要儲存時,就必須宣告龐大數量的變數,因此「串列」就派上用場了。
「串列」是能夠提供儲存資料的記憶體空間,每一個串列擁有一個名稱,作為識別該串列的標誌;串列中每一個資料稱為「元素」,每一個串列元素相當於一個變數,如此就可以輕易儲存大量的資料儲存空間。要存取串列中特定元素,是以元素在串列中的位置作為索引,即可存取串列元素。其語法為:
串列名稱 = [元素1, 元素2,.... ]
元素的資料型態可以相同或不同,甚至串列本身,如:
list1 = [1, 2, 3, 4, 5] #元素皆整數
list2 = ["香蕉", "蘋果", "芭樂"] #元素皆字串
list3 = [1, "蘋果", True] #包含不同資料型態
list4 = ["Sean", 165, 55, "student", ['Java', 'Python']]
那取得元素值的方法是將索引值置於中括號內,注意索引值是從0開始計,所以第一個元素索引值為0,第二個為1,以此類推。索引值不可超出串列範圍,否則會產生錯誤。例如:
>>>list4 = ["Sean", 165, 55, "student", ['Java', 'Python']]
>>> print(list4[3])
student
>>> print(list4[10]) #錯誤,索引值超出範圍
索引值可以是負值,表示由串列的最後向前取出,"-1"表示最後一個元素,"-2"表示倒數第二個,以此類推。同理,負索引值不可超出串列範圍,否則會產生錯誤。如:
>>>list4 = ["Sean", 165, 55, "student", ['Java', 'Python']]
>>> print(list4[-3])
55
>>> print(list4[-10]) #錯誤,索引值超出範圍
最後就是多維串列,它元素的存取是使用多個中括號組合,取出方法為下:
>>>list4 = ["Sean", 165, 55, "student", ['Java', 'Python']]
>>> print(list4[4])
['Java', 'Python']
>>> print(list4[4][1])
Python
元組的結構與串列完全相同,不同處在於元素個數及元素值皆不能改變,而串列可以改變,簡言之,Tuple就是"不可變的List"。語法如下:
元組名稱 = (元素1, 元素2,.... )
元組使用方式都與串列相同,但不能修改元素值,否則會發生錯誤。如:
tuple1 = (1, 2, 3, 4, 5) #元素皆整數
tuple2 = (1, "蘋果", True) #包含不同資料型態
>>>tuple3 = ("Sean", 165, 55, "student", ('Java', 'Python'))
>>>print(tuple3[3])
student
>>> tuple3[0] = "Eric" #錯誤,元素不能修改
那明天再來多講解List跟Tuple的相關用法。以下先整理比較出兩者差異: