列表推導式和生成表達式有相似,但是卻有本質不不同簡單的把它們之間的關係理一理吧:# 列表推導式: res=[i for i in range(6)] print(res) 結果:[0, 1, 2, 3, 4, 5] # 生成表達式: res=(i for i in range(6)) print(r ...
列表推導式和生成表達式有相似,但是卻有本質不不同
簡單的把它們之間的關係理一理吧:
# 列表推導式:
res=[i for i in range(6)] print(res) 結果:[0, 1, 2, 3, 4, 5]
# 生成表達式:
res=(i for i in range(6)) print(res)
結果:<generator object <genexpr> at 0x0000013EAD04EF68>
# 總結:
# 列表推導式和生成表達式相同點:內部代碼結構相同
# 列表推導式和生成表達式不同點:
①表現形式上:列表推導式是[],而生成表達式是()。
②最核心的不同是結果,列表推導式是直接把列表給你,而生成表達式只是給了你這個列表的記憶體地址,你要拿裡面的數據
我就給你,你不拿我就把個記憶體地址放那,即使用的時候才使用和分配記憶體。
*** 形象的比喻:列表推導式相當於給了你一筐雞蛋,而生成表達式是給了你一個老母雞。反正都能拿到蛋,只是形式不一樣而已。