Python 中的迭代器函式


在本文中,我們將學習 Python 3.x 或更早版本中提供的四個迭代器函式,即 accumulate()、chain()、filter false() 和 dropwhile() 方法。

現在,讓我們詳細探討其中的每一個方法 −

Accumulate() 和 chain() 方法

Accumulate() 方法需要兩個引數,一個是對其進行操作的可迭代物件,另一個是要執行的函式/操作。預設情況下,第二個引數執行加法操作。

Chain() 方法在連線所有可迭代物件後,列印所有可迭代目標。

以下示例說明了實現方法 −

示例

 線上演示

import itertools
import operator as op
# initializing list 1
li1 = ['t','u','t','o','r']
# initializing list 2
li2 = [1,1,1,1,1]
# initializing list 3
li3 = ['i','a','l','s','p','o','i','n','t']
# using accumulate() add method
print ("The sum after each iteration is : ",end="")
print (list(itertools.accumulate(li1,op.add)))
# using accumulate() multiply method
print ("The product after each iteration is : ",end="")
print (list(itertools.accumulate(li2,op.mul)))
# using chain() method
print ("All values in mentioned chain are : ",end="")
print (list(itertools.chain(li1,li3)))

輸出

The sum after each iteration is : ['t', 'tu', 'tut', 'tuto', 'tutor']
The product after each iteration is : [1, 1, 1, 1, 1]
All values in mentioned chain are : ['t', 'u', 't', 'o', 'r', 'i',
'a', 'l', 's', 'p', 'o', 'i', 'n', 't']

Dropwhile() 和 filterfalse() 方法

Drop while() 方法接受一個函式來檢查條件和一個對其進行操作的輸入可迭代物件。它在條件變為 false 後返回可迭代物件的所有值。

Filterfalse() 方法接受一個函式來檢查條件和一個對其進行操作的輸入可迭代物件。當給定的條件變為 false 時,它返回該值。

示例

 線上演示

import itertools
# list
l = ['t','u','t','o','r']
# using dropwhile() method
print ("The values after condition fails : ",end="")
print (list(itertools.dropwhile(lambda x : x!='o',l)))
# using filterfalse() method
print ("The values when condition fails : ",end="")
print (list(itertools.filterfalse(lambda x : x!='o',l)))

輸出

The values after condition fails : ['o', 'r']
The values when condition fails : ['o']

結論

在本文中,我們學習了 Python 3.x 或更早版本中提供的不同型別的迭代器函式。

更新於:2019 年 8 月 29 日

300 次瀏覽

開啟您的 職業生涯

完成課程以獲得認證

開始
廣告
© . All rights reserved.