列表解析式和生成器表示式

2021-08-07 11:28:10 字數 891 閱讀 7025

列表解析式:

[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 ...