国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

淺談Python中列表生成式和生成器的區別

2019-11-25 17:06:24
字體:
來源:轉載
供稿:網友

列表生成式語法:

[x*x for x in range(0,10)] //列表生成式,這里是中括號//結果 [0, 1, 4, 9, 16, 25, 36, 49, 64, 81](x*x for x in range(0,10)) //生成器, 這里是小括號//結果 <generator object <genexpr> at 0x7f0b072e6140>

二者的區別很明顯:
一個直接返回了表達式的結果列表, 而另一個是一個對象,該對象包含了對表達式結果的計算引用, 通過循環可以直接輸出

g = (x*x for x in range(0,10))for n in g:  print n

結果

0149162536496481

    當表達式的結果數量較少的時候, 使用列表生成式還好, 一旦數量級過大, 那么列表生成式就會占用很大的內存,
    而生成器并不是立即把結果寫入內存, 而是保存的一種計算方式, 通過不斷的獲取, 可以獲取到相應的位置的值,所以占用的內存僅僅是對計算對象的保存


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 略阳县| 临城县| 无棣县| 吴忠市| 溆浦县| 甘德县| 潮州市| 金寨县| 镇原县| 黑龙江省| 治多县| 民勤县| 新安县| 叙永县| 武威市| 平远县| 电白县| 吉安市| 兴山县| 沽源县| 青铜峡市| 罗平县| 新龙县| 潜山县| 治县。| 博客| 义乌市| 洞口县| 徐闻县| 黄平县| 丹凤县| 尉犁县| 兰州市| 眉山市| 米林县| 钟祥市| 安仁县| 浪卡子县| 台中县| 永泰县| 方城县|