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為...