從乙個小實驗說迭代器的應用意義 python3

2021-09-24 05:37:16 字數 871 閱讀 1475

網路上已經有無數文章或教程介紹迭代器,本文不涉及迭代器用法,主要通過乙個實驗效果,來說明它的應用意義。
實驗的**:
#迭代器效果演示

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的有參建構函式,...