- 註冊時間
- 2006-10-8
- 最後登錄
- 2019-6-20
- 主題
- 查看
- 積分
- 1306
- 閱讀權限
- 110
- 文章
- 1393
- 相冊
- 0
- 日誌
- 1
狀態︰
離線
|
是不是這樣
-函數創建迭代器的高效循環
例如,SML提供了一個製表工具:製表(F)產生的序列F(0), F(1), ...。可以在Python通過組合來實現相同的效果的imap()和計數()形成的imap(F, 計數())
這些工具和它們內置的同行也與在高速功能運作良好操作者模塊。例如,乘法運算符可以跨兩個向量被映射,以形成高效率的點積: 總和(IMAP(operator.mul, 向量1, vector2))
無限迭代器:
迭代器 參數 結果 例子
COUNT() 開始,[步] 啟動,啟動+步,啟動+2 *步,... 數(10) - > 10 11 12 13 14 ...
循環() p P0,P1,... PLAST,P0,P1,... 週期('ABCD') - > 一 乙 ç Ð 一 乙 Ç ð ...
重複() ELEM [,N] ELEM,ELEM,ELEM,... 無休止地或最多n次 重複(10, 3) - > 10 10 10
迭代終止在最短的輸入序列:
迭代器 參數 結果 例子
鏈() P,Q,...... P0,P1,... PLAST,Q0,Q1,... 鏈('ABC', 'DEF') - > 一 乙 ç Ð é F
壓縮() 數據選擇器 (D [0]如果s [0]),(D [1]如果s [1]),... 壓縮('ABCDEF', [1,0,1,0,1,1]) - > 一個 Ç É F
dropwhile() PRED,以次 以次[n]的,以次[N +1],潑尼松開始時失敗 dropwhile(波長 X: x <5, [1,4,6,4,1]) - > 6 4 1
GROUPBY() 迭代[,keyfunc] 子迭代器由keyfunc的值分組(五)
IFilter的() PRED,以次 起,其中預計值(ELEM)是真實的元素 IFilter的(波長 X: x%的2, 範圍(10)) - > 1 3 5 7 9
ifilterfalse() PRED,以次 起,其中預計值(ELEM)是假的要素 ifilterfalse(波長 X: x%的2, 範圍(10)) - > 0 2 4 6 8
islice() 起,[開始,]停止[,步] 從序列的元素[啟動:停止:步] islice(“ABCDEFG”, 2, 無) - > ç Ð é F Ğ
IMAP() 函數,P,Q,...... 功能(P0,Q0),功能(P1,Q1),... IMAP(POW, (2,3,10), (5,2,3)) - > 32 9 千
星圖() 功能,以次 功能(*以次[0]),功能(*起[1]),... 星圖(POW, [(2,5), (3,2), (10,3)]) - > 32 9 1000
三通() 它,正 IT1,IT2,... ITN分裂一個迭代器裡面分成n
takewhile() PRED,以次 以次[0],以次[1],直到PRED失敗 takewhile(波長 X: x <5, [1,4,6,4,1]) - > 1 4
izip() P,Q,...... (P [0],則q [0]),對(p [1],則q [1]),... izip('ABCD', 'XY') - > 斧 通過
izip_longest() P,Q,...... (P [0],則q [0]),對(p [1],則q [1]),... izip_longest('ABCD', 'XY', fillvalue =' - ') - > 斧 按 C- D-
Combinatoric發電機:
迭代器 參數 結果
產品() P,Q,...... [重複= 1] 笛卡爾積,相當於一個嵌套的for循環
排列() P [,R] R-長度的元組,所有可能的排序,沒有重複的元素
組合() P,R R-長度的元組,按照排序順序,無重複的元素
combinations_with_replacement() P,R R-長度的元組,按照排序順序,有重複的元素
產品(“ABCD”, 重複= 2) AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD
排列('ABCD', 2) AB AC AD BA BC BD CA CB CD DA DB DC
組合('ABCD', 2) AB AC AD BC BD 光盤
combinations_with_replacement('ABCD', 2) AA AB AC AD BB BC BD CC CD DD |
|