本文介紹通過使用itertools工具包高效利用記憶體,提高訪問效率
通過兩個例子,直觀比較記憶體的使用情況:
通過sys.getsizeof函式檢視變數占用的記憶體大小
例子一
通過普通切片方法取list裡面的值
def
test_func1()
: value_list =
[i for i in
range(1
,100001)]
result = value_list[35:
60000:3
]print
('用常規方法切片:'
,len
(result)
, sys.getsizeof(result)
)輸出:用常規方法切片: 19989
159976
例子二
使用itertools工具包中的islice函式取list裡面的值
def
test_func2()
: value_list =
[i for i in
range(1
,100001)]
result = islice(value_list,35,
60000,3
)print
('用islice切片:'
,len
(list
(result)
), sys.getsizeof(result)
)輸出:用常規方法切片: 19989
80
通過上面兩個例子得出記憶體使用對比情況:159976/80 = 1999.7
,相差了2000倍,使用islice切片比直接使用list切片,能大幅減少記憶體使用。
利用Python3巢狀列印
巢狀列印小星星 完成5行內容的簡單輸出 分析每行內部的小星星如何處理 定義乙個行的計數器變數 row 1 迴圈while row 5 每一行列印的小星星和當前行數的行號是一致的 定義乙個列的計數器變數 col 1 增加乙個小迴圈,專門用來控制每一列的 星星 控制 while col row prin...
python3記憶體快取 python 3 x
我試圖通過telnet 使用控制台伺服器控制台 到cisco路由器,執行一些show命令,並將它們的輸出儲存在變數中。下面是簡單的指令碼的工作原理 在執行指令碼之前已經登入到路由器 在實際使用案例中不是很有用 import telnetlib import datetime import getpa...
python3 切片 python3 切片
取乙個list或tuple的部分元素是非常常見的操作。比如,乙個list如下 l michael sarah tracy bob jack 取前3個元素,應該怎麼做?笨辦法 l 0 l 1 l 2 michael sarah tracy 之所以是笨辦法是因為擴充套件一下,取前n個元素就沒轍了。取前n...