国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

對python中的高效迭代器函數詳解

2020-02-15 23:16:32
字體:
來源:轉載
供稿:網友

python中內置的庫中有個itertools,可以滿足我們在編程中絕大多數需要迭代的場合,當然也可以自己造輪子,但是有現成的好用的輪子不妨也學習一下,看哪個用的順手~

首先還是要先import一下:

#import itertoolsfrom itertools import * #最好使用時用上面那個,不過下面的是為了演示比較  常用的,所以就直接全部導入了

一.無限迭代器:

python 高效迭代器函數

由于這些都是無限迭代器,因此使用的時候都要設置終止條件,不然會一直運行下去,也就不是我們想要的結果了。

1、count()

可以設置兩個參數,第一個參數為起始點,且包含在內,第二個參數為步長,如果不設置第二個參數則默認步長為1

for x in count(10,20): if x < 200: print x
def count(start=0, step=1): # count(10) --> 10 11 12 13 14 ... # count(2.5, 0.5) -> 2.5 3.0 3.5 ... n = start while True: yield n n += step

2、cycle()

可以設置一個參數,且只接受可以迭代的參數,如列表,元組,字符串。。。,該函數會對可迭代的所有元素進行循環:

for i,x in enumerate(cycle('abcd')): if i < 5: print x
def cycle(iterable): # cycle('ABCD') --> A B C D A B C D A B C D ... saved = [] for element in iterable: yield element saved.append(element) while saved: for element in saved:  yield element

3、repeat()

可以設置兩個參數,其中第一個參數要求可迭代,第二個參數為重復次數,第二個參數如不設置則無限循環,一般來說使用時都會設置第二個參數,用來滿足預期重復次數后終止:

#注意如果不設置第二個參數notebook運行可能會宕機for x in repeat(['a','b','c'],10): print x

二.有限迭代器

python 高效迭代器函數

1、chain()

可以接受不定個數個可迭代參數,不要求可迭代參數類型相同,會返回一個列表,這個類似于list的extend,不過不同點是list的extend是對原變量進行改變不返回,而chain則是就地改變并返回:

list(chain(range(4),range(5)))list(chain(range(4),'abc'))list(chain(('a','b','c'),'nihao',['shijie','zhongguo']))
def chain(*iterables): # chain('ABC', 'DEF') --> A B C D E F for it in iterables: for element in it:  yield element

2.compress()

第一個參數為可迭代類型,第二個參數為0和1的集合,兩者長度可以不等,

這個暫時不知道可以用在哪里、

list(compress(['a','b','c','d','e'],[0,1,1,1,0,1]))            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 交口县| 封开县| 岑溪市| 射阳县| 清河县| 吉林市| 苏州市| 南华县| 基隆市| 鲜城| 罗山县| 天津市| 博爱县| 武强县| 五河县| 茌平县| 西昌市| 中山市| 锦屏县| 桑植县| 汪清县| 东乌珠穆沁旗| 合水县| 察隅县| 冷水江市| 灌阳县| 吴桥县| 河源市| 鸡泽县| 于都县| 含山县| 浦城县| 红原县| 思南县| 施甸县| 株洲市| 威信县| 鹤峰县| 榕江县| 沛县| 武定县|