python學習筆記4-資料結構

來源:互聯網
上載者:User
文章目錄
  • 一、列 (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被清空

相關文章

Alibaba Cloud 10 Year Anniversary

With You, We are Shaping a Digital World, 2009-2019

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。