讀書筆記 Python演算法教程第二章(1)

2021-10-01 19:07:00 字數 1370 閱讀 2278

import time

def apd()

: num =

value = 10 ** 5

start = time.perf_counter()

for i in range

(0, value)

:(i)

num.reverse()

end = time.perf_counter()

cost = end-start

return cost

def ins()

: num =

value = 10 ** 5

start = time.perf_counter()

for i in range

(0, value)

: num.insert

(0, i)

end = time.perf_counter()

cost = end-start

return cost

if __name__ == '__main__'

:print

(apd()

)print

(ins()

)print

(ins

()/apd()

)

out:

0.0188175

2.1347503

348.51071276868265

其實python中的list並不是傳統意義上的列表。

在傳統計算機中列表往往指的是鍊錶。

其實定義乙個鍊錶很簡單:

class node

: def __init__(self, value, next=none)

: self.value = value

self.next = next

if __name__=='__main__'

: node1 = node

(1) node2 = node

(2, node1)

node3 = node

(3, node2)

print

(node1,node2,node3)

鍊錶中的每個元素既要有這個元素的值,又要有他連線的值的位置。在插入乙個新值的時候是很方便的。

但是python中的列表是乙個陣列,他是一塊連續的記憶體,如果要插入乙個新值意為著要移動其他的值以保證這種記憶體位址的連續性。

所以在這樣的的列表中插入乙個值的代價是較大的。

1.時間複雜度的引入。

2.python列表的本質是陣列。

3.鍊錶的概念。

Python基礎教程 讀書筆記三

1.所有的標準序列操作都使用於字串,記住字串不可改變。2.字串格式化 標記轉換說明符 如果字串本身包含 用 代替。3.字串格式化轉換標誌 表示左對齊 表示在轉換值前加正負號 空白字元 表示正數之前保留空格 0表示轉換值若位數不夠用0填充。4.find str,begin index,end inde...

《python基礎教程》 讀書筆記(2)

所有標準的序列操作 索引 分片 乘法 判斷成員資格 求長度 取最大和最小值 對字串同樣適用。但是,字串是不可改變的。find find方法可以在乙個較長的字串中查詢子串,它返回字串所在位置的最左端索引,如果沒有找到則返回 1。title to be or not to be title.find b...

《python基礎教程》 讀書筆記 6

from random import choice 標準庫 random中包涵choice函式,可以從序列中隨機挑選出元素,給變數賦值 執行後你不必關心x是那種型別,只需知道x有個叫count的方法及它的呼叫方式和返回值類 x choice hello world 1,2,3,e 4,e print...