Python中的字典

來源:互聯網
上載者:User

標籤:預設值   更新   形式   val   索引值   不可變   get   特殊情況   地址   

字典(dict)

  dic是映射類型,由{}括起來的索引值對組成,在dict中key是唯一的.在儲存的時候,根據key來計算出唯一個記憶體位址. 然後將key-value儲存在這個地址中.這種演算法被稱為hash演算法,所以,在dict中儲存的key-value中的key必須是可hash的,如果你搞不懂什什麼是可雜湊, 暫時可以這樣記, 可以改變的都是不可雜湊的,可雜湊就意味著不可變. 這個是為了能準確的計算記憶體位址而規定的.

  已知的可雜湊(不可變)的資料類型: int, str, tuple, bool

  不可雜湊(可變)的資料類型: list, dict, set

  文法:{key1: value1, key2: value2....}

  dict儲存的資料不是按照我們添加進去的順序儲存的. 是按照hash表的順序儲存的. 而hash表不是連續的. 所以不能進行切片工作. 它只能通過key來擷取dict中的資料,在3.6之前.列印一個字典的結果中索引值對的順序都是錯亂的,3.6之後,索引值對的順序與輸入的順序一致,但是儲存的時候還是無序的

  增加:

    1.dict[一個字典中不存在的key0 = 值, 就會新增一個索引值對

    2.setdefalt():設定預設值,當沒有為一個key設定value時,key等於這個預設value,通過方法1設定之後,value就會是設定的那個value

  刪除:

    1.pop(key):類似於list的pop,不過list使用的是下標,而dict用的是key

    2.del 關鍵字  用法同list

    3.popitem():隨機刪除一個索引值對

    4.clear():清空,一個不剩

  修改:

    1.dict[一個已經存在的key] = value 會對已有的索引值對重新賦值,覆蓋原有的的value

    2.dict1.update(dict2):把dict2中的索引值對更新到dict1中,key一樣的會覆蓋,沒有的索引值對會新增

  查詢:

    1..dict[一個已經存在的key]  當key在dict中不存在的時候,會報錯

    2.get(key,defalt=None):與方法1不同的是.key不存在的時候返回None,這個None可以通過參數defalt修改

  其他相關操作:

    例:dic = {"id": 123, "name": ‘sylar‘, "age": 18, "ok": "科比"}

    1.print(dic.keys)  # dict_keys([‘id‘, ‘name‘, ‘age‘, ‘ok‘]) 它的形式類似於list,但是並不是list,print(type(dic.keys))的結果是 <class ‘dict_keys‘> ,但是可以當做list來用,可以進行for迴圈.

      for key in dic.keys:

        print(key)

    2.print(dic.values()) #同keys基本一樣,用法也相同

      for  value in dic.values:

        print(value)

    3.print(dic.items()) #dict_items([(‘id‘, 123), (‘name‘, ‘sylar‘), (‘age‘,18), (‘ok‘, ‘科比‘)])

      for key, value in dic.items:

        print(key, value)

    *一個特殊情況:直接遍曆dic,列印的也是key.

      for i in dic:

        print(i)

      

    

  

 

Python中的字典

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.