<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          python中最高頻的模塊

          共 1283字,需瀏覽 3分鐘

           ·

          2020-06-15 23:23

          13a891f99ff7344e3f524ce10ea4f427.webp

          題圖:Photo by Wengang Zhai on Unsplash

          昨天標題寫的是Python中最冷門的模塊,很多人表示不服,這里接受大家的意見。說明我的讀者里面大部分都是有經驗的老司機了。


          考慮到還有很多小白關注著,今天換了個標題,這下你們沒意見了吧。


          今天繼續(xù)介紹 collections 模塊下第二個重要的類型 defaultdict

          52a3495d0da3d439ed53798adb0981c4.webp

          defaultdict

          defaultdict 是 dict 類型的子類,正如其名,初始化時,可以給key指定默認值,什么意思呢?直接看代碼。

          如果是普通的dict對象,訪問一個不存在的key時,會報錯:

          >>> raw_d = dict()
          >>> raw['a']
          NameError: name 'raw' is not defined

          而使用 defaultdict,可以給不存在的 key 一個默認的初始值,例如:

          默認值為空列表的字典

          d = defaultdict(list)
          >>> d['a']
          []

          默認值為0的字典

          >>> d = defaultdict(int)
          >>> d['a']
          0

          defaultdict 函數(shù)接收的參數(shù)是一個可調用對象,你可以簡單理解為是一個函數(shù)對象,int,list 本來也是一個函數(shù),如果我希望默認值不是0,而是1,該怎么處理呢?可以使用匿名函數(shù)

          >>> d = defaultdict(lambda :1)
          >>> d['a']
          1

          也可以自己定義一個函數(shù)

          from collections import defaultdict

          def v2():
          return 2

          d = defaultdict(v2)
          print(d["a"]) # 2

          最后說個 defaultdict 的使用場景,讓你的代碼更加 pythonic

          處理如下數(shù)據(jù),將相同的值放在一組

          data = [("p", 1), ("p", 2), ("p", 3),
          ("h", 1), ("h", 2), ("h", 3)]

          變成

          result= {'p': [1, 2, 3], 'h': [1, 2, 3]}

          先自己想想如何實現(xiàn)。如果用 defaultdict 來處理的話,代碼會很優(yōu)雅

          from collections import defaultdict
          # 先初始化一個默認值為空列表的字典
          result = defaultdict(list)

          data = [("p", 1), ("p", 2), ("p", 3),
          ("h", 1), ("h", 2), ("h", 3)]

          # 將value相同的組放在一個key中
          for (key, value) in data:
          result[key].append(value)

          print(result)

          >>>defaultdict(, {'p': [1, 2, 3], 'h': [1, 2, 3]})


          推薦:


          1. Python最冷門的模塊

          2. 臥槽!python這個內置模塊可以開發(fā)游戲


          關注我,每天分享實用小知識

          瀏覽 69
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  韩国精品在线 | 五月丁香月 | 国产黄色视频在线免费看 | 一区二区三区免费无码 | 人人摸人人操人人摸 |