1. 程式人生 > >Python學習心得(四) yield和三元運算以及lambda表達式

Python學習心得(四) yield和三元運算以及lambda表達式

意思 next 數值 blog div 生產 生成 英文 返回

1.yield 英文意思生產、生成的意思,在Python中帶有yield的函數被稱為生成器(Generator)

‘‘‘

for i in range(10000)  #生成10000個元素的List 值越大,運行中占用的內存就會越大
for j in xrange(10000) #xrange返回的不是List,而是一個iterable的對象 每次叠代返回下一個數值,占用很小的內存空間

‘‘‘

def readFileByYield(xpath):
    with open(xpath,‘rb‘) as ty:
        for line in ty.readlines():
            yield line #每執行一次yield,語句就會中斷,並返回一個叠代值

#for循環中會自動調用 next()
for line in readFileByYield(‘D:\wangyi.py‘):
    print line

2.Python三元運算 語法格式:為真時的結果 if 判定條件 else 為假時的結果   

1 if 10>9 else 0

def threeElementExpression(a,b):                             
    return a - b if a > b else abs(a - b) 

print threeElementExpression(1,5)
print threeElementExpression(10,5)

3.lambda表達式,它能實現函數速寫的功能,相當於匿名函數,而用def聲明的函數是有名稱的,比如:

lambdatest = lambda x:x**2

for i in range(1,5):
    print lambdatest(i)


list_lambda = range(1,10)

#列表中的每個元素加1
print map(lambda a: a+1, list_lambda) 
 
#返回列表中的偶數
print filter(lambda a: a % 2 == 0, list_lambda) 
 
#返回列表中所有元素相乘的結果
print reduce(lambda a, b: a * b, list_lambda) 

  

  

Python學習心得(四) yield和三元運算以及lambda表達式