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

python中itertools模塊zip_longest函數(shù)詳解

 更新時間:2018年06月12日 08:46:10   作者:牛奶i豆?jié){  
itertools模塊包含創(chuàng)建高效迭代器的函數(shù),這些函數(shù)的返回值不是list,而是iterator(可迭代對象),可以用各種方式對數(shù)據(jù)執(zhí)行循環(huán)操作,今天我們來詳細(xì)探討下zip_longest函數(shù)

最近在看流暢的python,在看第14章節(jié)的itertools模塊,對其itertools中的相關(guān)函數(shù)實現(xiàn)的邏輯的實現(xiàn)

其中在zip_longest(it_obj1, ..., it_objN, fillvalue=None)時,其函數(shù)實現(xiàn)的功能和內(nèi)置zip函數(shù)大致相同(實現(xiàn)一一對應(yīng)),

不過內(nèi)置的zip函數(shù)是已元素最少對象為基準(zhǔn),而zip_longest函數(shù)是已元素最多對象為基準(zhǔn),使用fillvalue的值來填充

以下是自己總結(jié)此函數(shù)的大致實現(xiàn)方法,和官方方法不同:

思路大致如此: 找出元素個數(shù)最多 ==>算出元素個數(shù)差值==>填充差值個元素到各個對象

def zip_longest(*it, **kwargs):
  its = {k: len(k) for k in it}   # 這里我是用字典把參數(shù)對象和參數(shù)的元素個數(shù)結(jié)果作為一個字典
  max_num = max(its.values())    # 確定迭代對象元素最大值 
  result = []            # 
  fillvalue = kwargs.get('fillvalue', None) # 元素較少的填充值
  for x in range(max_num):     # 已最大次為基準(zhǔn)循環(huán)
    result = []
    for it in its:        # 循環(huán)所有迭代對象,以便進(jìn)行填充數(shù)據(jù)
      element = list(it)    # 將
      if len(it) < max_num:   # 如果迭代對象的元素個數(shù)比最大值小,則要填充數(shù)據(jù)
        for i in range(max_num - len(it)): # 此為要填充數(shù)據(jù)的個數(shù)
          element.append(fillvalue)    # 填充操作,完成后所有的迭代對象的元素個數(shù)都為一致    
      result.append(element[x])        # 生成一一對應(yīng)結(jié)果,存放到list中
    yield tuple(result)             # 將結(jié)果輸出

測試其結(jié)果:

res = zip_longest('abc', '12')
for x in res:
  print(x)

結(jié)果為:

('a', '1')
('b', '2')
('c', None)

相關(guān)文章

  • ?python用matplotlib可視化繪圖詳解

    ?python用matplotlib可視化繪圖詳解

    這篇文章主要介紹了?python用matplotlib可視化繪圖詳解,Matplotlib?是一個python的?2D繪圖庫,它以各種硬拷貝格式和跨平臺的交互式環(huán)境生成出版質(zhì)量級別的圖形,下面我們就來看看關(guān)于matplotlib可視化繪圖的詳細(xì)過程吧
    2022-01-01
  • PyTorch中flatten()?函數(shù)的用法實例小結(jié)

    PyTorch中flatten()?函數(shù)的用法實例小結(jié)

    在PyTorch中,flatten函數(shù)的作用是將一個多維的張量轉(zhuǎn)換為一維的向量,它可以將任意形狀的張量轉(zhuǎn)換為一維,而不需要指定轉(zhuǎn)換后的大小,這篇文章主要介紹了PyTorch中flatten()?函數(shù)的用法,需要的朋友可以參考下
    2023-11-11
  • Python使用正則表達(dá)式抓取網(wǎng)頁圖片的方法示例

    Python使用正則表達(dá)式抓取網(wǎng)頁圖片的方法示例

    這篇文章主要介紹了Python使用正則表達(dá)式抓取網(wǎng)頁圖片的方法,結(jié)合具體實例形式分析了Python網(wǎng)頁文件的讀取及正則匹配相關(guān)操作技巧,需要的朋友可以參考下
    2017-04-04
  • Python使用sqlite3第三方庫讀寫SQLite數(shù)據(jù)庫的方法步驟

    Python使用sqlite3第三方庫讀寫SQLite數(shù)據(jù)庫的方法步驟

    數(shù)據(jù)庫非常重要,程序的數(shù)據(jù)增刪改查需要數(shù)據(jù)庫支持,python處理數(shù)據(jù)庫非常簡單,而且不同類型的數(shù)據(jù)庫處理邏輯方式大同小異,下面這篇文章主要給大家介紹了關(guān)于Python使用sqlite3第三方庫讀寫SQLite數(shù)據(jù)庫的方法步驟,需要的朋友可以參考下
    2022-07-07
  • Python同時迭代多個序列的方法

    Python同時迭代多個序列的方法

    這篇文章主要介紹了Python同時迭代多個序列的方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • django多文件上傳,form提交,多對多外鍵保存的實例

    django多文件上傳,form提交,多對多外鍵保存的實例

    今天小編就為大家分享一篇django多文件上傳,form提交,多對多外鍵保存的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Numpy中的數(shù)組搜索中np.where方法詳細(xì)介紹

    Numpy中的數(shù)組搜索中np.where方法詳細(xì)介紹

    這篇文章主要介紹了Numpy中的數(shù)組搜索中np.where方法詳細(xì)介紹,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python實現(xiàn)截圖生成符合markdown的鏈接

    Python實現(xiàn)截圖生成符合markdown的鏈接

    之前是用的是typora來寫的文章,最近typora最近開始收費了,所以就不想用了,于是找到了一個替代品MarkText。本文將介紹如何通過Python實現(xiàn)截圖自動生成符合markdown的鏈接,感興趣的可以了解一下
    2022-01-01
  • python實現(xiàn)QQ定時發(fā)送新年祝福信息

    python實現(xiàn)QQ定時發(fā)送新年祝福信息

    大家好,本篇文章主要講的是python實現(xiàn)QQ定時發(fā)送新年祝福信息,感興趣的同學(xué)感快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • 聊聊Python對CSV文件的讀取與寫入問題

    聊聊Python對CSV文件的讀取與寫入問題

    今天抽空給大家介紹下Python對CSV文件的讀取與寫入問題,首先需要在python環(huán)境里導(dǎo)入csv板塊,下面就通過實例代碼給大家詳細(xì)介紹下,感興趣的朋友跟隨小編一起看看吧
    2021-11-11

最新評論

大连市| 碌曲县| 桦南县| 新宁县| 古浪县| 台安县| 榆林市| 宁德市| 四川省| 论坛| 宜川县| 九龙县| 鄂伦春自治旗| 丹棱县| 金平| 抚松县| 永新县| 安顺市| 太谷县| 芜湖县| 措美县| 泰和县| 承德县| 富裕县| 太原市| 沛县| 陵川县| 合阳县| 英超| 安西县| 景洪市| 大关县| 沿河| 海南省| 阜宁县| 三明市| 科尔| 博湖县| 浪卡子县| 夹江县| 台中县|