import itertools
# 「無限」迭代器
# 建立乙個無限的迭代器,**會列印出自然數序列,根本停不下來,只能按ctrl+c退出。
deftestcount
(): natuals=itertools.count(1)
for i in natuals:
print(i)
# testcount()
# 傳入的乙個序列無限重複下去
deftestcycle
(): cs=itertools.cycle("abc")
for i in cs:
print(i)
# testcycle()
# 責把乙個元素無限重複下去,不過如果提供第二個引數就可以限定重複次數
deftestrepeat
(): r=itertools.repeat("a",10)
for n in r:
print(n)
# testrepeat()
# 列印出1到10
# 通過takewhile()等函式根據條件判斷來截取出乙個有限的序列
deftesttakewhile
(): natuals=itertools.count(1)#從1開始
ns=itertools.takewhile(lambda x:x<=10, natuals)
for n in ns:
print(n)
# testtakewhile()
# chain()可以把一組迭代物件串聯起來,形成乙個更大的迭代器
# 迭代效果:'a' 'b' 'c' 'x' 'y' 'z'
deftestchain
(): cs=itertools.chain("abc","xyz")
for c in cs:
print(c)
# testchain()
# 把迭代器中相鄰的重複元素挑出來放在一起
deftestgroupby
():for key,group in itertools.groupby("aaaaaabbbcccddd"):
print(key,list(group))
# testgroupby()
"""a ['a', 'a', 'a']
b ['b', 'b', 'b']
c ['c', 'c']
a ['a', 'a', 'a']
"""# 忽略大小寫分組
deftestgroupbyupper
():for key,group in itertools.groupby("aaaaabbbcccddddd",lambda x:x.upper()):
print(key,list(group))
# testgroupbyupper()
# imap()和map()的區別在於,imap()可以作用於無窮序列,並且,如果兩個序列的長度不一致,以短的那個為準。
deftestimap
():for i in map(lambda x,y:x*y,[10,20,30],itertools.count(1)):
print(i)
testimap()
參考:廖雪峰python-itertools
三十三 深入Python中的itertools模組
author runsen 在python中有乙個功能強大的迭代工具包itertools,是python自帶的標準工具包之一。由於itertools是內建庫,不需要任何安裝,直接import itertools即可。product 用於求多個可迭代物件的笛卡爾積 cartesian product ...
Python3學習筆記23 itertools
python的內建模組itertools提供了非常有用的用於操作迭代物件的函式。首先,我們看看itertools提供的幾個 無限 迭代器 因為count 會建立乙個無限的迭代器,所以上述 會列印出自然數序列,根本停不下來,只能按ctrl c退出。cycle 會把傳入的乙個序列無限重複下去 同樣停不下...
python程式設計遊戲 python程式設計遊戲有哪些
1.github上面有個專案free python games,裡面集合了不少的python開發的小遊戲,能玩,也適合新手用來練練手,另外 pygame 這個 裡面裡面集合了很多python開發的小遊戲。3.小時候經常在手機上玩的乙個遊戲,也是一款經典的街機遊戲,這款遊戲進化之後其實就是乙個打桌球的...