国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

itertools模塊超實用方法

caohaoyu / 2300人閱讀

摘要:相信大家在學習的過程中都用到過這個模塊,但是可能只是用到了其中的一兩個方法,對于其更強大的功能沒有更深的認識。今天我就按照自己的方式向大家介紹一下這個模塊。

相信大家在學習python的過程中都用到過這個模塊,但是可能只是用到了其中的一兩個方法,對于其更強大的功能沒有更深的認識。今天我就按照自己的方式向大家介紹一下這個模塊。
groupby:用于分組

rows=[
    {"name":"jim","date":"07/01"},
    {"name":"tom","date":"07/01"},
    {"name":"rose","date":"07/01"},
    {"name":"tom","date":"07/02"},
    {"name":"jim","date":"07/03"},
    {"name":"rose","date":"07/02"},
]
#groupby只能對連續數據進行分組,因此不能確定數據有序的情況下,建議進行排序操作
gbrows=sorted(rows,key=itemgetter["date"])

for gbdata,row in gbrows(gbrows,key=itemgetter["date"])
    print(gbdata)
    for i in row:
        print(i)
        
#以下是輸出結果:
07/01/2018
{"name": "jim", "date": "07/01/2018"}
{"name": "tom", "date": "07/01/2018"}
{"name": "rose", "date": "07/01/2018"}
07/02/2018
{"name": "tom", "date": "07/02/2018"}
{"name": "rose", "date": "07/02/2018"}
07/03/2018
{"name": "jim", "date": "07/03/2018"}

permutations:按照給定位數對可迭代對象內元素進行組合

listed = ["a","b","c","d"]

for i in permutations(listed,3):
    print(i)

#以下是輸出結果(由于結果比較多,我對格式進行了變化,但數據都是正確的)
("a", "b", "c") ("a", "b", "d") ("a", "c", "b") ("a", "c", "d") ("a", "d", "b") ("a", "d", "c")
("b", "a", "c") ("b", "a", "d") ("b", "c", "a") ("b", "c", "d") ("b", "d", "a")
("b", "d", "c")
("c", "a", "b") ("c", "a", "d") ("c", "b", "a") ("c", "b", "d") ("c", "d", "a") ("c", "d", "b")
("d", "a", "b") ("d", "a", "c") ("d", "b", "a") ("d", "b", "c") ("d", "c", "a") ("d", "c", "b")

combinations:按照給定位數對可迭代對象內元素進行組合,但是結果不重復

listed = ["a","b","c","d"]

for i in combinations(listed,3):
    print(i)
#以下是輸出結果
("a", "b", "c")
("a", "b", "d")
("a", "c", "d")
("b", "c", "d")

combinations_with_replacement:與combinations區別就是同一元素可以使用多次

listed = ["a","b","c"]    #由于結果數據太多,我減少源數據量

for i in combinations_with_replacement(listed,3):
    print(i)
    
#以下是輸出結果
("a", "a", "a")
("a", "a", "b")
("a", "a", "c")
("a", "b", "b")
("a", "b", "c")
("a", "c", "c")
("b", "b", "b")
("b", "b", "c")
("b", "c", "c")
("c", "c", "c")

zip_longest:對多個數據按索引進行組合,并根據迭代對象的大小,不足使用fillvalue默認值替代

a=[1,2,3]
b=["a","b"]

for i in zip_longest(a,b,fillvalue="nihao"):
    print(i)
    
for i in zip(a,b):
    print(i)    
#zip是一個python內置函數,與zip_longest不同的是匹配到迭代對象最小的最后元素就結束
#結果對比:
zip_lengest:            zip:
    (1, "a")                (1, "a")
    (2, "b")                (2, "b")
    (3, "nihao")

dropwhile:對可迭代對象的元素依次進行函數過濾,遇到返回False的元素就停止

listed=[-1,0,-3,2,-5,4,2]

for i in dropwhile(lambda s:s<3,listed):
    print(i)
    
#輸出結果:
4
2

product:可以說是combinations的升級版,對多個序列進行組合,且無重復

list1=[1,2,3]
list2=[4,5]
list3=["a"]

for i in product(list1,list2,list3):
    print(i)
#結果:
(1, 4, "a")
(1, 5, "a")
(2, 4, "a")
(2, 5, "a")
(3, 4, "a")
(3, 5, "a")

islice:對迭代器,可迭代對象進行切片操作

iter=(i for i in range(10))

for i in islice(iter,0,10,2):
    print(i)
#結果為:
0
2
4
6
8

chain:對多個可迭代對象進行組合

list1=[1,2,3]

set1={"a","b"}

for i in chain(list1,set1):
    print(i)

總結:itertools這個模塊可以解決以后我們對多個iterable進行組合的問題。
更詳細的分類可以參考:https://segmentfault.com/a/11...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42822.html

相關文章

  • Python 進階之路 (九) 再立Flag, 社區最全的itertools深度解析(上)

    摘要:例如,以下對兩個的相應元素求和這個例子很好的解釋了如何構建中所謂的迭代器代數的函數的含義。為簡單起見,假設輸入的長度可被整除。接受兩個參數一個可迭代的正整數最終會在中個元素的所有組合的元組上產生一個迭代器。 前言 大家好,今天想和大家分享一下我的itertools學習體驗及心得,itertools是一個Python的自帶庫,內含多種非常實用的方法,我簡單學習了一下,發現可以大大提升工作...

    tuantuan 評論0 收藏0
  • python 好用的迭代兵器庫itertools,十八般兵器哪18般?

    摘要:三國時代著名的兵器鑒別家呂虔根據兵器的特點對漢武帝欽定的十八般兵器重新排列為九長九短。明代五雜俎和清代堅集兩書所載十八般兵器為弓弩槍刀劍矛盾斧鉞戟黃锏撾殳棍叉耙頭錦繩套索白打拳術。后人稱其為小十八般。 知識點 在古典小說和傳統評話中,常說武藝高強的人是十八般武藝樣樣精通...

    番茄西紅柿 評論0 收藏2637
  • python高級特性

    摘要:常規的使用來統計一段代碼運行時間的例子輸出結果總結其實是一門特別人性化的語言,但凡在工程中經常遇到的問題,處理起來比較棘手的模式基本都有對應的比較優雅的解決方案。 python的高級特性 名詞與翻譯對照表 generator 生成器 iterator 迭代器 collection 集合 pack/unpack 打包/解包 decorator 裝飾器 context manager ...

    yexiaobai 評論0 收藏0
  • Python實用技法第14篇:根據字段將記錄分組:itertools.groupby()

    摘要:上一篇文章實用技法第篇對自定義類對象排序下一篇文章實用技法第篇篩選序列中的元素需求 上一篇文章:Python實用技法第13篇:對自定義類對象排序:attrgetter下一篇文章:Python實用技法第15篇:篩選序列中的元素 1、需求

    zhaofeihao 評論0 收藏0
  • 經驗拾憶(純手工)=> Python好用深度技能工具介紹

    摘要:單元素元祖這是整數這才是元祖也許這兩行,你們當時疑惑過,并且現在也都知道了,當然重點并不在這里。。雖然我水平很垃圾,但是我知道匿名函數有一種執行方式叫做自執行??窗?,這就是版的匿名函數自執行方法。 單元素元祖: a = (1) # 這是整數1 a = (1,) # 這才是元祖 也許這兩行,你們當時疑惑過,并且現在也都知道了,當然重點并不在這里。。 我無聊的時候想過,為什么單...

    UnixAgain 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<