最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中的itertools的使用詳解

 更新時間:2020年01月13日 10:08:18   作者:你就像只鐵甲小寶  
這篇文章主要介紹了python中的itertools的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

今天了解了下python中內(nèi)置模塊itertools的使用,熟悉下,看能不能以后少寫幾個for,嘿嘿😁。

1.無窮的迭代器

1.1 count(start,[step])

count()接受兩個參數(shù)

  • start:循環(huán)開始的數(shù)字
  • step:循環(huán)中的間隔
from itertools import count

"""
無窮的迭代器 count()
"""
c = count(0, 2)
v = next(c)
while v < 10:
  v = next(c)
  print(v, end=',')

1.2 cycle()

cycle就是一while True,無限循環(huán)里面的數(shù)字。

"""
無窮迭代器 cycle()
"""
from itertools import cycle

c = cycle('ABCD')
for i in range(10):
  print(next(c), end=',')

1.3 repeat(elem,[n])

重復迭代elem,n次

"""
無窮迭代器 repeat()
"""
from itertools import repeat

r = repeat(1, 3)
for i in range(3):
  print(next(r), end=',')

2. 迭代器

2.1 accumulate(p,[func])

使用func的函數(shù)對迭代對象p進行累積。

"""
迭代器 accumulate()
"""
from itertools import accumulate

test_list = [i for i in range(1, 11)]
for i in accumulate(test_list): # 默認是operator.add
  print(i, end=',')
print()
for i in accumulate(test_list, lambda x, y: x * y): # operator.mul
  print(i, end=',')

2.2 chain()

chain()中可以放多個迭代對象,然后一一迭代出來。

"""
迭代器 chain()
"""
from itertools import chain

ch = chain([1, 2, 3], {4: 4, 5: 5}, {6, 7, 8}, (9,), [10, [11, 12]])
for i in ch:
  print(i)

2.3 chain.from_iterable()

跟chain不同的地方在于:

  • chain: 可以接受多個迭代對象
  • chain.from_iterable():可以接受一個可以產(chǎn)生迭代對象的迭代器
"""
迭代器 chain.from_iterable()
"""
def gen_iterables():
  for i in range(10):
    yield range(i)

for i in chain.from_iterable(gen_iterables()):
  print(i)

2.4 compress(data,selectors)

這是就是看下這個就知道了s是selectors中的元素。
(d[0] if s[0]), (d[1] if s[1]), ...

"""
迭代器 compress
"""
from itertools import compress

print(list(compress(['A', 'B', 'C', 'D'], [0, 1, 1, 1])))

2.5 dropwhile(pred,seq)

循環(huán)開始的條件是,直到遇到第一次不滿足pred條件的情況,才開始遍歷。

"""
迭代器 dropwhile()
"""
from itertools import dropwhile

l = [1, 7, 6, 3, 8, 2, 10]
print(list(dropwhile(lambda x: x < 3, l)))

2.6 groupby

這個感覺挺有意思的,有點像sql中的group_by。可以對字符串,列表等進行分組。

返回鍵和,組里的內(nèi)容

from itertools import groupby

# 對字符串進行分組
for k, g in groupby('11111234567'):
  print(k, list(g))
d = {1: 1, 2: 2, 3: 2}
# 按照字典value來進行分組
for k, g in groupby(d, lambda x: d.get(x)):
  print(k, list(g))

2.7 islice
這個就是對迭代對象進行切割,不支持負數(shù),有點像range(1,10,2)這種

from itertools import islice
print(list(islice('ABCDEFG', 2,3, None)))

2.8 zip_longest

這個和zip很像,不同地方在于:

  • zip結束取決于里面最短的迭代對象
  • zip_longest結束取決于里面最長的迭代對象
from itertools import zip_longest

for x,y in zip_longest([1,2,3],[1,2]):
  print(x,y)
for x,y in zip([1,2,3],[1,2]):
  print(x,y)
 

排列組合迭代器

3.1 product

相當于 嵌套的for

“”"
排列組合迭代器 product 嵌套的for
“”"
from itertools import product
for i,j in product([1,2,3],[4,5]):
print(i,j

3.2 permutations

全排列,比如輸出123的全部情況。(1,2,3),(1,3,2)…

from itertools import permutations
print(list(permutations('123')))
 

3.3 combinations(p,r)

從p中找出所有長度為r的排列情況… 有順序

from itertools import combinations
print(list(combinations([1,2,3],2)))

3.4 combinations_with_replacement()

從p中找出所有長度為r的排列情況,有順序,但包括自身就是會重復的意思。

  • combinations_with_replacement(‘ABCD', 2)
  • AA AB AC AD BB BC BD CC CD DD

了解是了解了,就是用的時候不知道能不能想起來…

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • python簡單實現(xiàn)9宮格圖片實例

    python簡單實現(xiàn)9宮格圖片實例

    在本篇內(nèi)容里小編給各位分享的是一篇關于python實現(xiàn)朋友圈中的九宮格圖片的實例講解,有需要的朋友們可以參考下。
    2020-09-09
  • python奇偶行分開存儲實現(xiàn)代碼

    python奇偶行分開存儲實現(xiàn)代碼

    這篇文章主要介紹了python讀取文件,偶數(shù)行輸出一個文件,奇數(shù)行輸出一個文件,需要的朋友可以參考下
    2018-03-03
  • Python中最好用的json庫orjson用法詳解

    Python中最好用的json庫orjson用法詳解

    orjson是一個用于python的快速、正確的json庫,它的基準是 json最快的python庫,具有全面的單元、集成和互操作性測試,下面這篇文章主要給大家介紹了關于Python中最好用的json庫orjson用法的相關資料,需要的朋友可以參考下
    2022-06-06
  • 教你如何使用Python快速爬取需要的數(shù)據(jù)

    教你如何使用Python快速爬取需要的數(shù)據(jù)

    學點數(shù)據(jù)爬蟲基礎能讓繁瑣的數(shù)據(jù)CV工作(Ctrl+C,Ctrl+V)成為自動化就足夠了.作為一名數(shù)據(jù)分析師而并非開發(fā)工程師,需要掌握的爬蟲必備的知識內(nèi)容,能獲取需要的數(shù)據(jù)即可 ,需要的朋友可以參考下
    2021-06-06
  • python 讀取Linux服務器上的文件方法

    python 讀取Linux服務器上的文件方法

    今天小編就為大家分享一篇python 讀取Linux服務器上的文件方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python中?OpenCV和Pillow處理圖像操作及時間對比

    python中?OpenCV和Pillow處理圖像操作及時間對比

    這篇文章主要介紹了python中OpenCV和Pillow處理圖像操作及時間對比,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • Pandas去除重復項函數(shù)詳解drop_duplicates()

    Pandas去除重復項函數(shù)詳解drop_duplicates()

    這篇文章主要介紹了Pandas去除重復項函數(shù)drop_duplicates(),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python基本數(shù)據(jù)類型詳細介紹

    Python基本數(shù)據(jù)類型詳細介紹

    Python提供的基本數(shù)據(jù)類型主要有:布爾類型、整型、浮點型、字符串、列表、元組、集合、字典等等
    2014-03-03
  • python/golang 刪除鏈表中的元素

    python/golang 刪除鏈表中的元素

    這篇文章主要介紹了python/golang 如何刪除鏈表中的元素,幫助大家更好的理解和使用python/golang,感興趣的朋友可以了解下
    2020-09-09
  • 一文帶你掌握Python?Seaborn數(shù)據(jù)可視化高級篇

    一文帶你掌握Python?Seaborn數(shù)據(jù)可視化高級篇

    這篇文章主要為大家詳細介紹了如何使用?Seaborn?創(chuàng)建復合圖形,如網(wǎng)格圖、因子圖和聚類熱圖等,文中示例代碼講解詳細,感興趣的小伙伴可以學習一下
    2023-07-07

最新評論

奉贤区| 本溪| 鱼台县| 冷水江市| 庐江县| 安阳市| 杨浦区| 庆城县| 禹州市| 兴山县| 齐齐哈尔市| 任丘市| 靖州| 海丰县| 郁南县| 湖口县| 理塘县| 手机| 独山县| 杨浦区| 新邵县| 同心县| 永寿县| 莱阳市| 抚州市| 北辰区| 和静县| 呼和浩特市| 石渠县| 永福县| 寿宁县| 双峰县| 江油市| 兴安县| 繁昌县| 中牟县| 焉耆| 南阳市| 台州市| 甘德县| 永寿县|