Python資料結構

2021-07-29 05:31:40 字數 2072 閱讀 4946

1)把鍊錶當作堆疊使用

#pop():刪除末尾元素

2)把鍊錶當作佇列使用

#要實現佇列,使用 collections.deque,它為在首尾兩端快速插入和刪除而設計

from collections import deque

queue = deque(['eric', 'john', 'michael'])

queue.popleft() #左刪

queue.pop() #右刪

鍊錶可以用索引、切割或者 

extend()等方法改變

3)函式式程式設計工具

鍊錶中,三個內建函式非常有用:filter()、map()、reduce()

filter(function,

sequence)返回乙個 sequence(序列),包括了給定序列中所有呼叫function(item)後返回值為 true 的元素(如果可能的話,會返回相同的型別)。如果該 

序列(sequence)是乙個 

str, 

unicode

或者 tuple

,返回值必定是同一型別,否則,它總是 

list

>>> def f(x): return x % 3 == 0 or x % 5 == 0

...>>> filter(f, range(2, 25))

[3, 5, 6, 9, 10, 12, 15, 18, 20, 21, 24]

map(function,

sequence)為每乙個元素依次呼叫function(item)並將返回值組成乙個鍊錶返回。(

可以傳入多個序列,函式也必須要有對應數量的引數,執行時會依次用各序列上對應的元素來呼叫函式(如果某些序列比其它的短,就用none來代替)。如果把none做為乙個函式傳入,則直接返回引數做為替代。)

reduce(function,

sequence)返回乙個單值,它是這樣構造的:首先以序列的前兩個元素呼叫函式 

function

,(可以傳入第三個引數作為初始值。)

4)列表解析/列表推導式

源自集合的概念。對序列中的每一項執行乙個表示式來建立乙個新列表。每次乙個,從左至右。

編寫在方括號中,並且有使用了同乙個變數名的表示式和迴圈結構組成。

它建立了新的列表作為結果,但是能夠在任何可迭代的物件上進行迭代。

它能在python的任何序列型別中發揮作用。

在python3.0中,列表、集合、字典 都可以用來解析和建立。

它的結構是在乙個中括號裡包含乙個表示式,然後是乙個

for語句,然後是0個或多個

for或者

if語句。那個表示式可以是任意的,意思是你可以在列表中放入任意型別的物件。返回結果將是乙個新的列表,在這個以if和

for語句為上下文的表示式執行完成之後產生。

巢狀的列表推導式是對

for後面的內容進行求值。

5)元組

元組是 

不可變的

,通常包含不同種類的元素並通過分拆(參閱本節後面的內容)或索引訪問(如果是 

namedtuples

,甚至可以通過屬性)。列表是 

可變的,它們的元素通常是相同的型別並通過迭代訪問。

6)集合

注意:想要建立空集合,你必須使用set()而不是{}

建立字典的方式:

1)>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
2)>>> 

3)>>> dict(sape=4139, guido=4127, jack=4098)

sorted()

函式,它不改動原序列,而是生成乙個新的已排序的序列

python資料結構

資料結構是一種結構,它們用以把一些資料儲存在一起。在python中有三種內建的資料結構 列表 list 元組 tuple 字典 dictionary 列表由一對方括號括起來,其中的專案之間以逗號分隔。你可以在列表中增加 刪除 查尋專案。示例如下 python using list.py 這兒有 4 ...

python 資料結構

刪除元素 remove,pop,del set是乙個無序的,不重複的元素集合 set中每個元素都是可雜湊的,但是set不是可雜湊的。相對應的frozenset,可hash,可以作為keys存在於dict中 支援 x in set,len set for x in set,不支援slice等序列操作 ...

python 資料結構

變數是只不過保留的記憶體位置用來儲存值。這意味著,當建立乙個變數,那麼它在記憶體中保留一些空間a abc 1.在記憶體中建立了乙個 abc 的字串 2.在記憶體中建立了乙個名為a的變數,並把它指向 abc a abc b a a xyz a abc 直譯器建立了字串 abc 和變數a,並把a指向 a...