本文實例講述了Python列表生成式與生成器操作。分享給大家供大家參考,具體如下:
列表生成式:能夠用來創(chuàng)建list的生成式
比如想要生成類似[1*1,2*2,3*3,…..100*100]的這種list時
可以用
[x * x for x in range(1,11)]
這樣就能生成,除此之外,后面還能添加判斷條件來篩選
比如
[x * x for x in range(1,11) if x%2=0]
這樣就能篩選出僅有偶數(shù)的平方
還能用多層循環(huán)來生成全排列
[m+n for m in 'ABC' for n in 'XYZ']
總之 列表生成式能夠快速的生成滿足條件的list
下面是一個讓list中所有字符串變?yōu)樾懙睦?/p>
[s.lower() for s in ['TIM','JOHN','MARY']
生成器:就是未循環(huán)完的列表,這是為了節(jié)約電腦內(nèi)存,設立的一種一邊循環(huán)一邊計算的機制。
創(chuàng)建的方法也是很簡單,其中一種就是把列表生成式的[]改成()就可以了
而調(diào)用的時候也一般不用麻煩的next()的方法,而是用for循環(huán)來遍歷
比如:
g = (x*x for x in range(10))for n in g: print(n)
運行結果:
0
1
4
9
16
25
36
49
64
81
這樣就能遍歷出所有的生成器中的元素
另一種生成器的方法:如果函數(shù)中包含有yield關鍵字,則這是一個生成器
def odd(): print('step 1') yield 1 print('step 2') yield(3) print('step 3') yield(5)使用(遍歷)方法:
g=odd()for i in g: print(i)
運行結果:
step 1
1
step 2
3
step 3
5
希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答
圖片精選