文章目錄
- 一、列 (Lists)
- 二、Tuple(固定有序列)
- 三、字典(dictionary)
- 四、del敘述
下面介紹python提供的幾個主要的資料結構
一、列 (Lists)
列之前已經介紹過,這裡介紹一下列提供的一些方法
append(x):在list的尾端加入一個成員,也可以用這個方法來寫 a[len(a):] = [x]。
extend(L): 接受一個新的 list的參數,然後把它加入到目前這個 list的尾端,也可以寫作 a[len(a):] = L 。
insert(i, x):在某個特定的位置加入一個成員。第一個參數是要加入的位置的 index,所以 a.insert(0, x) 會加入在 list的最前端,而 a.insert(len(a), x) 會在最後端加入,相等於 a.append(x) 。
remove(x):拿掉第一個其值相等於 x. 的成員。如果整個list都沒有這個成員,那就會得到一個錯誤 (error)。
pop([i]):從一個list中拿掉某個位置的成員,並且傳回這個被拿掉的成員。如果沒有傳入位置的 index的話, a.pop() 會傳回這個 list的最後一個成員,同樣的這個成為會被從這個 list之中拿掉。
index(x):傳回第一個其值相等於 x 的成員之位置(index),如果整個 list都沒有這個成員,那就會得到一個錯誤 (error)。
count(x):傳回在整個 list裡面, x 出現了多少次。
sort():針對list裡面的成員做排序。
reverse():反轉整個 list裡面成員的位置。
利用列,我們可以實現堆棧和隊列,使用列的pop(),append()方法即可,如果要實現隊列,則用pop()傳入參數即可。
二、Tuple(固定有序列)
list和字串有很多共同點,他們都屬於sequence這種資料型態的特例,相應的,我們還有一種標準的sequence資料型態:tuple 固定有序列。
tuple成員與成員之間以逗號分開,如:
t = 1, 2, hello
【tuple與list的區別】
tuple的方法和list類似,不單獨介紹,只介紹tuple不存在的方法:
append()、extend()、remove()、pop()、index()
list理論上可以代替tuple,tuple只所以存在,我理解是:
1)tuple不可以更改其成員,使得他的效能會比list快
2)其成員不可更改,使得代碼更加安全,比如,我們可以用他來表示(x, y)座標,比list更加清楚和安全。
三、字典(dictionary)
字典這種結構,應該就是一個雜湊表,用{}來定義,比如 dict = {},或者dict = {'a': 0, b': 1}。可以看到,每個字典中的元素都是一對key:value。第四部分介紹的del敘述,也可用來操作字典,具體結果可以自己試試。往字典裡增加元素,可以直接用dict['c'] = 2,這樣的語句。
字典提供的一些方法包括:
get(key, default=None):返回key對應的值,如果key不在字典,返回default的值
keys():返回所有key的list
values(): 列出所有value的list
clear():清空字典
has_key(key):判斷key是否在字典,在返回True,否則返回False
items():返回dict的(鍵,值)對的列表
setdefault(key, default=None):如果dict中有key,返回key,如果沒有,在dict中加入key,值為default
update(dict2):將另一個dict元素加入本dict,重複時候覆蓋
四、del敘述
del可以方便的去掉list中的某個位置的成員,如 a = [1, 2, 3, 4, 5],執行del a[0]後,a = [2, 3, 4, 5],再執行一個del a[1:3],則a = [2, 5]。如果執行del a,則a被清空