Python程式設計 itertools模組

2021-08-15 02:03:01 字數 1701 閱讀 2448

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.小時候經常在手機上玩的乙個遊戲,也是一款經典的街機遊戲,這款遊戲進化之後其實就是乙個打桌球的...