網路上已經有無數文章或教程介紹迭代器,本文不涉及迭代器用法,主要通過乙個實驗效果,來說明它的應用意義。實驗的**:
#迭代器效果演示
gen =
(x for x in
range
(30000000))
for i in gen:
print
(i)#列表效果演示
lis =
[x for x in
range
(30000000)]
for i in lis:
print
(i)
分別執行兩段**,並觀察系統相關資訊
a:使用迭代器的效果:
記憶體穩定在41%左右
b:使用列表的效果:
記憶體穩定在50%左右
1、測試的系統記憶體是8g,也就是說,使用列表多用了近10%,約1g的記憶體。所以效果顯而易見,就是解決記憶體占用的問題。2、調整**,繼續增大迴圈次數,列表方式占用的記憶體還會繼續增加,直到記憶體耗盡,造成系統卡頓甚至宕機。而迭代器方式,記憶體占用沒有變化,完美解決了記憶體占用的問題。
新手在平常的語法、演算法練習,資料量一般比較小,效果差異並不明顯,所以對其實際應用的理解會略顯困難。
運維、大資料分析等等實際專案中,這種情況是很常見的,反而很容易明白其應用意義。
PIVOT的乙個小應用
之前學習case when來實現行列轉換的方法,但是今天學習到了pivot的方法,記錄分享下,園子里大牛多多,甚是受益 select provinceid,中石油,中石化,中海油,社會單位 這裡要注意的是對漢字不需要加單引號,這裡是選出來所需要的列 from select provinceid,na...
乙個裝飾器的簡單應用小例子
登陸驗證 如果沒喲登陸,則提示登陸 message deflogin f def inner args,kwargs 被裝飾函式執行之前的操作 if message status ret f args,kwargs return ret else name input 輸入帳戶 password i...
從乙個小例題學習super 函式的特點
題目如下 寫出程式執行結果 class super public super class demo extends super public static void main string args 執行結果 b c 7 解析 super d new demo a 時,會呼叫demo的有參建構函式,...