1. 程式人生 > >六 三元表達式、列表推導式、生成器表達式

六 三元表達式、列表推導式、生成器表達式

pan abc 一次 pri 聲明 優點 express 推導 next

一 三元表達式

二 列表推導式

三 生成器表達式

一 三元表達式

1 name=input(姓名>>: )
2 res=abc if name == lucy else jack
3 print(res)

二 列表推導式

#1、示例
egg_list=[]
for i in range(10):
    egg_list.append(雞蛋%s %i)

egg_list=[雞蛋%s %i for i in range(10)]

#2、語法
[expression for item1 in iterable1 if
condition1 for item2 in iterable2 if condition2 ... for itemN in iterableN if conditionN ] 類似於 res=[] for item1 in iterable1: if condition1: for item2 in iterable2: if condition2 ... for itemN in iterableN: if conditionN: res.append(expression)
#3、優點:方便,改變了編程習慣,可稱之為聲明式編程

三 生成器表達式

 1 #1、把列表推導式的[]換成()就是生成器表達式
 2 
 3 #2、示例:生一筐雞蛋變成給你一只老母雞,用的時候就下蛋,這也是生成器的特性
 4 >>> chicken=(雞蛋%s %i for i in range(5))
 5 >>> chicken
 6 <generator object <genexpr> at 0x10143f200>
 7 >>> next(chicken)
 8 雞蛋0
 9
>>> list(chicken) #因chicken可叠代,因而可以轉成列表 10 [雞蛋1, 雞蛋2, 雞蛋3, 雞蛋4,] 11 12 #3、優點:省內存,一次只產生一個值在內存中

六 三元表達式、列表推導式、生成器表達式