列表解析式:
[expr for iter_var in iterable]
[expr for iter_var in iterable if cond_expr]
例如:
[i*10
for i in
range(10)]
結果:
[0,10,20,30,40,50,60,70,80,90]
[i*10
for i in
range(10) if i<5]
結果:
[0,10,20,30,40]
生成器(generator)表示式:
(expr for iter_var in iterable)
(expr for iter_var in iterable if code_expr)
例如:
>>>g=(i
fori in range(1,10) if
i%3==0 or i%5==0)
>>>g
at 0x000001812abbe410>
>>>for
i in g:
print(i)
結果:
3 5
6 9
生成器表示式並不真正建立數字列表,而是返回乙個生成器,這個生成器在每次計算出乙個條目後,把這個條目「產生」出來。生成器表示式使用了「惰性計算」,有在檢索使用時才被賦值,所以在pythonercn列表比較長的情況下,使用記憶體更有效。
列表解析與生成器表示式
列表解析與生成器表示式 列表推導式 egg list for i in range 100 egg s i print egg list l egg s i for i in range 100 if i 50 print l 在乙個列表中 將for的迴圈寫在列表的右側。for i in rang ...
Python之列表解析和生成器表示式
列表解析 列表推導式 是非常有用,簡單靈活的工具,可以動態的建立列表。expr for iter var in iterable iterable是乙個可迭代物件 expr是元素的處理結果 列表解析就是在一行 中寫了乙個for迴圈 結果返回的是乙個列表 例1 我要建立乙個 0,1,4,9,16,25...
Python中列表解析式與生成器表示式
生成器表示式 生成器和列表解析式對比 集合解析式 字典解析式 總結習題 非列表解析式寫法 even for x in rang 10 if x 2 0 列表解析式寫法 even x for x in range 10 if x 2 0 以下例子返回值會是什麼?newlist print i for ...