itertools模組是python的乙個內建模組,它提供了非常有用的用於操作迭代物件的函式。
>>> x=itertools.cycle('123')
>>> for i in x:
print(i)
輸出結果
『1』
『2』『3』
『1』『2』
…………
>>> import itertools
>>> natuals = itertools.count(1)
>>> for n in natuals:
print n
輸出結果
123
…………
有時為了擷取一定數量的迭代片段,還可以使用itertools.takewhile()等函式進行判斷
>>> natuals = itertools.count(1)
>>> ns = itertools.takewhile(lambda x: x <= 10, natuals)
>>> for n in ns:
... print n
...列印出1到10
>>> k=itertools.chain('abc','mnb')
>>> for i in k:
print(i)
輸出結果
abc
mnb
m=itertools.groupby('aaaaabbbbbccccc')
>>> for i,l in m:
print(i,list(l))
輸出結果
a ['a', 'a', 'a', 'a', 'a']
b ['b', 'b', 'b', 'b', 'b']
c ['c', 'c', 'c', 'c', 'c']
注意:此處groupby生成的是乙個字元以及其對應的列表
這兩個嚐嚐函式用於無限序列
迭代的模組itertools
itertools模組提供的全部是處理迭代功能的函式,他們的返回值不是list,而是迭代物件,只有在for迴圈的時候才會真正去計算。使用迭代器的好處是在迴圈的時候才去取值,而直接返回值為list的結果會占用大量的記憶體,從而使用迭代器的話,使用了惰計算的方式,或者是延遲計算,從而在效能上能好很多。在...
itertools模組的使用
打破順序,可能出現的所有情況,可能同乙個元祖中順序不同的情況下,元素相同 permutations 是排列函式 所有元素重排列為所有可能的情況 將元素之間的順序打亂成所有可能的情況 以元祖的形式返回。案例1 import itertools a 1,2,3 n 0 for i in itertool...
內建模組 itertools
python的內建模組itertools提供了非常有用的用於操作迭代物件的函式。首先,我們看看itertools提供的幾個 無限 迭代器 import itertools natuals itertools.count 1 for n in natuals print n 123 因為count 會...