# Python內(nèi)建的模塊itertools提供了非常有用的用于操作迭代對(duì)象的函數(shù)
# count()會(huì)創(chuàng)建一個(gè)無限的迭代器
import itertools
# natuals = itertools.count(1)
# for n in natuals:
# print(n)
# cycle()會(huì)把傳入的字符串一直重復(fù)的迭代循環(huán)下去
# cs = itertools.cycle('ABC')
# for c in cs:
# print(c)
# repeat()負(fù)責(zé)把一個(gè)元素?zé)o限重復(fù)下去.不過如果提供第二個(gè)參數(shù)就可以限定重復(fù)的次數(shù).
ns = itertools.repeat('ABC', 3)
for n in ns:
print(n)
# 我們通常用takewhile()等函數(shù)根據(jù)條件判斷來截取一個(gè)有限的序列
natuals = itertools.count(1)
ns = itertools.takewhile(lambda x: x <= 10, natuals)
print(list(ns))
# itertools提供了更好用的操作迭代對(duì)象的函數(shù)
# chain()函數(shù), 將迭代對(duì)象串聯(lián)起來么形成更大的迭代器
for c in itertools.chain('ABC', 'XYZ'):
print(c)
# groupby()把迭代器中相鄰的重復(fù)元素跳出來放在一起.
# for key, group in itertools.groupby('AAABBBCCAAA'):
# print(key, list(group))
# 實(shí)際上挑選規(guī)則是通過函數(shù)完成的, 只要作用于函數(shù)的兩個(gè)元素返回的值
# 相等, 這兩個(gè)元素就被認(rèn)為是在一組的.而函數(shù)返回值作為組的key.
# 如果我們要忽略大小寫分組.可以讓'A', 'a'返回相同的key
for key, group in itertools.groupby('AaaBBbcCAAa', lambda c:c.upper()):
print(key, list(group))
# itertools模塊提供的全部是處理迭代功能的函數(shù).他們的返回值不是list
# 而是Iterable.只有用for循環(huán)迭代的是否才真正的計(jì)算.
(內(nèi)部模塊)itertools
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 特點(diǎn): (1)前后端都用js編寫容易實(shí)現(xiàn)全棧 (2)非阻塞 i/o (最重要) (3)完善的生態(tài) (4)使用v8引...
- MYSQL: 首次安裝后:1、初始化mysqlmy.cnf文件包含數(shù)據(jù)存放目錄和臨時(shí)目錄:datadir =...