python生成表示式

2021-10-23 12:37:55 字數 571 閱讀 3875

python的語法比較隨意,為了簡潔有許多生成表示式

如:列表生成表示式    list = [i for i in range(10)]

加判斷    list = [i for i in range(10) if i % 2 ==0]

多層迴圈    list = [i for in range(10) for j in range(i) ]

一般大公司為了**清晰易懂,是不允許多層迴圈的,但是語法上並沒有問題

字典生成表示式     d =

生成器表示式     g = (i for i in range(10))

使用小括號,返回的是生成器,它無法通過直接列印就獲得內部的值,而需要呼叫__next__方法或者使用for迴圈,使用for迴圈的本質也是呼叫__next__方法

print(g)這是什麼都不列印的

print(g.__next__())ok

for i in g:

print(i)  ok

它的特點是占用記憶體固定,比如說你有個100g的檔案,顯然無法把它讀進8g的記憶體中,這時可以使用生成器表示式去一塊一塊的去讀,讀完一次就刪除

Python生成器表示式

簡介 生成器表示式並不真正的建立數字列表,而是返回乙個生成器物件,此物件在每次計算出乙個條目後,把這個條目 產生 yield 出來。生成器表示式使用了 惰性計算 或稱作 延時求值 的機制。序列過長,並且每次只需要獲取乙個元素時,應該考慮生成器表示式而不是列表解析。語法 expression for ...

python基礎 生成器表示式

egon egg list 雞蛋 s i for i in range 10 列表推導式 print egg list egg list for i in range 10 print egg list print i i for i in range 10 生成器表示式 g i for i in ...

Python生成字尾表示式及計算

字尾表示式 也叫做逆波蘭式或逆波蘭記法 其實就是將運算子寫在運算元之後的式子。比如我們平時寫a b,這是中綴表示式,寫成字尾表示式就是ab 下面來看乙個更複雜的例子 求 a b c a b e字尾表示式的j具體過程 a b c a b e a b c a b e a b c a b e ab c a...