python必備操作

2021-10-08 22:16:14 字數 3750 閱讀 3767

super() 函式是用於呼叫父類(超類)的乙個方法。

super 是用來解決多重繼承問題的,直接用類名呼叫父類方法在使用單繼承的時候沒問題,但是如果使用多繼承,會涉及到查詢順序(mro)、重複呼叫(鑽石繼承)等種種問題。

mro 就是類的方法解析順序表, 其實也就是繼承父類方法時的順序表。

classa(

object):

def__init__

(self, m)

: self.a = m

defadd(self)

:print

('add'

)class

b(a)

:def

__init__

(self)

: self.a =

2super()

.__init__(1)

super()

.add(

)print

(self.a)

c = b(

)

# output:

add1

使用指定方法去作用傳入的每個可迭代物件的元素生成新的可迭代物件輸入:方法+可迭代物件

輸出:新的可迭代物件

a =

map(

lambda x: x*2,

range(10

))print

(list

(a))

# output:[0

,2,4

,6,8

,10,12

,14,16

,18]

使用指定方法過濾可迭代物件的元素

def

true

(x):

return

true

deffalse

(x):

return

false

print

(list

(filter

(true,

range(10

))))

print

(list

(filter

(false,

range(10

))))

# output:[0

,1,2

,3,4

,5,6

,7,8

,9][

]

iter() 方法返回乙個特殊的迭代器物件, 這個迭代器物件實現了next() 方法並通過 stopiteration 異常標識迭代的完成。

a =

iter

(range(10

))print

(a)print

(next

(a))

print

(next

(a))

print

(next

(a))

print

(next

(a))

print

(next

(a))

>01234

返回可迭代物件中的下乙個元素值

一定要是可迭代物件

在sorted裡,key還可以等於str.lower,直接進行大小寫轉換

list insert,list.insert(n, a),n為index,a為插入的元素,時間複雜度o(n)

其他操作的時間複雜度:

列表(list)

以完全隨機的列表考慮平均情況。

列表是以陣列(array)實現的最大的開銷發生在超過當前分配大小的增長這種情況下所有元素都需要移動;或者是在起始位置附近插入或者刪除元素,這種情況下所有在該位置後面的元素都需要移動。如果你需要在乙個佇列的兩端進行增刪的操作,應當使用collections.deque(雙向佇列)

操作平均情況

最壞情況

複製o(n)

o(n)

o(1)

o(1)

插入(insert)

o(n)

o(n)

取元素o(1)

o(1)

更改元素

o(1)

o(1)

刪除元素(remove)

o(n)

o(n)

遍歷o(n)

o(n)

取切片o(k)

o(k)

刪除切片

o(n)

o(n)

更改切片

o(k+n)

o(k+n)

extend[注1]

o(k)

o(k)

排序o(n log n)

o(n log n)

列表乘法

o(nk)

o(nk)

x in s

o(n)

min(s), max(s)

o(n)

計算長度 (len)

o(1)

o(1)

我們知道對於陣列來說,在尾部插入、刪除元素是比較高效的,時間複雜度是 o(1),但是如果在中間或者開頭插入、刪除元素,就會涉及資料的搬移,時間複雜度為 o(n),效率較低。

所以對於一般處理陣列的演算法問題,我們要盡可能只對陣列尾部的元素進行操作,以避免額外的時間複雜度

reduce() 函式會對引數序列中元素進行累積。

函式將乙個資料集合(鍊錶,元組等)中的所有資料進行下列操作:用傳給 reduce 中的函式 function(有兩個引數)先對集合中的第 1、2 個元素進行操作,得到的結果再與第三個資料用 function 函式運算,最後得到乙個結果。

reduce() 函式語法:

reduce

(function, iterable[

, initializer]

)

python裡面如何拷貝乙個物件?

copy 僅拷貝物件本身,而不拷貝物件中引用的其它物件。

deepcopy 除拷貝物件本身,而且拷貝物件中引用的其它物件。

參考資料

生成器也是一種迭代器,但是你只能對其迭代一次。這是因為它們並沒有把所有的值存在記憶體中,而是在執行時生成值。

python中迭代器和生成器的區別

語法上生成器是通過函式的形式中呼叫 yield 或()的形式建立的

迭代器可以通過 iter() 內建函式建立

用法上生成器在呼叫next()函式或for迴圈中,所有過程被執行,且返回值

迭代器在呼叫next()函式或for迴圈中,所有值被返回,沒有其他過程或說動作。

python必備單詞

print 輸出 input 輸入 str 字串 utf 8 字串的一種成熟編碼 ord 獲取字串的整數表示形式 chr 把編碼轉換成對應字元 encode 編碼指定為 bytes len 檢視乙個合集裡包含多少個元素 float 浮點數 list 可更改的有序合集 tuple 不可修改的有序列表,...

python必備單詞

學習從記憶開始,將一些知識背下來,對後面的學習會有極大的幫助 這42個單詞是學習python必須背會的單詞,也是 中常見的單詞。希望你能都背下來!1.adult d lt 成年人 2.authentication ent ke n 身份驗證 認證 鑑定 3.bit b t 稍微 小量 小塊 一點 4...

Python 入門必備

互動式程式設計不需要建立指令碼檔案,而是直接通過python直譯器的互動模式進來編寫 下面我們來開啟python自帶的互動式程式設計客戶端,列印乙個hello,world 通過指令碼引數呼叫直譯器開始執行指令碼,直到指令碼執行完畢。當指令碼執行完成後,直譯器不再有效。所有python檔案將以.py為...