10 生成器表示式和列表推導式

2021-09-12 21:08:13 字數 892 閱讀 7161

生成器表示式和列表推導式不同:

括號不同,生成器表示式用(),列表推導式不用

返回的值不一樣,生成器表示式返回乙個生成器,幾乎不佔記憶體。列表推導式一下子把值全取出來,佔記憶體大。

egg_list=

['雞蛋%s'

%i for i in

range(10

)]#列表推導式

print

(egg_list)

g =

(i for i in

range(10

))#生成器表示式

print

(g)for i in g:

print

(i)

老母雞=

('雞蛋%s'

%i for i in

range(5

))#生成器表示式

print

(老母雞)

for 蛋 in 老母雞:

print

(蛋)

# 例一:將乙個字典的key和value對調

mcase =

#mcase_frequency =

print

(mcase_frequency)

# 例二:合併大小寫對應的value值,將k統一成小寫

mcase =

#mcase_frequency =

print

(mcase_frequency)

#集合推導式,自帶結果去重功能

squared =

print

(squared)

列表推導式和生成器表示式

固定語法 i for i in a if 示例 獲取偶數 a 1,2,3,4 x for i in a if i 2 0 a x print a 2,4 使用列表推導式 a 1,2,3,4 a i for i in a if i 2 0 print a 2,4 列表推導式可以呼叫函式 a 1,2,3...

列表推導式,生成器表示式

生成器表示式,列表推導式 其他推導式 變數 加工後的變數 for 變數 in iterable 迴圈模式 變數 加工後的變數 for 變數 in iterable if 條件 篩選模式 優點 1,節省 一行搞定.2,看著高大上.缺點 不好排錯.整體 凡是用列表推導式構造的列表物件,用其他方式都可構建...

列表推導式 生成器表示式

列表推導式 基本形式 表示式 for 引數 in 可迭代物件 或者 表示式 for 引數 in 可迭代物件 if 條件 例項 1 l 2for i in range 100 egg s i 4printi5 6 不帶if條件 7 l agg s i for i in range 100 89 帶if...