1. 程式人生 > >Python 字典dict相關知識

Python 字典dict相關知識

  1. 字典是無序的,多次print輸出的結果不一樣。
  2. 字典的key可以是數字、字串、元組、布林值(True為1,False為0,不可以和其他key值重複);列表和字典不能作為key。
  3. 字典的value可以是任何型別。
  4. 字典支援del方法刪除。
  5. 字典支援for迴圈,是可迭代物件,不支援while迴圈。
  6. 輸出字典所有的key:
    for item in info.keys():
             print(item)
  7.  輸出字典所有的值:
    for item in info.values():
           print(item)
  8.  輸出字典所有的鍵值對:
    for k, v in info.items():
         print(k, v)
  9. info.clear( )            | 清空字典
  10. info.copy( )            |淺拷貝
  11. dict.fromkeys( *args, **kwargs )           |這是一種靜態方法@staticmethod。根據序列建立字典,並給其指定統一值。 像此類靜態方法呼叫時,用類名.方法名就可以。

    前面帶兩個*時,表示這裡可以用name=“…”的形式穿入引數,也可以直接傳入字典。
    >>> new_dict = dict.fromkeys(['k1',123,'999'],123)
    >>> print(new_dict)
    {'k1': 123, 123: 123, '999': 123}
  12. info.get( )         |get能直接根據索引號來獲取該索引號對應的值,和直接用info['k1']不同的是,當輸入的索引號不存在時,info['K1']會報錯,但是get會輸出None,並且可以設定當索引號不存在時應該輸出的預設值。

    >>> info = {'K1':123,'k2':890}
    >>> v = info.get('k1111',222)
    >>> print (v)
    222
  13. info.pop( )         |刪除值並且得到刪掉的值。
    >>> info = {'K1':123,'k2':890}
    >>> v = info.pop('K1')
    >>> print (info, v)
    ({'k2': 890}, 123)
  14. info.popitem( )      |此方法不帶引數,是指隨即刪除字典裡的一個鍵值對,並獲取刪掉的鍵值對的值。
    >>> info = {'K1':123,'k2':890}
    >>> k, v = info.popitem()
    >>> print(info, k, v)
    ({'K1': 123}, 'k2', 890)       #隨機刪掉了K2鍵值對
  15. info.setdefault( )      |當setdefault引數中設定的鍵在字典中存在時,不作修改,並且獲得該鍵在字典中對應的值,當setdefault引數的鍵在字典中不存在時,則把setdefault設定的鍵值對新增到字典中,並且獲得該鍵對應的值。
    >>> info = {'K1':123,'k2':890}
    >>> v = info.setdefault('k11111',666)      #這是當引數的鍵在字典中不存在時,結果把引數設定的鍵值對新增到了字典中,並且返回了該鍵對應的值。
    >>> print(info, v)
    ({'k2': 890, 'K1': 123, 'k11111': 666}, 666)
  16. info.update( )        |更新字典的內容,對原來存在的鍵覆蓋其值,對原來不存在的鍵值對新增到字典中。
    >>> info = {'k1':123,'k2':890}
    >>> info.update({'k1': 11111,'k3':'hdjkdl'})    #這裡引數傳入的是一個字典
    >>> print(info)
    {'k3': 'hdjkdl', 'k2': 890, 'k1': 11111}
    >>> info = {'k1':123,'k2':890}
    >>> info.update(k1=11111,k3='hdjkdl')           #或者也可以以這種方式傳入引數和值
    >>> print(info)
    {'k3': 'hdjkdl', 'k2': 890, 'k1': 11111}
  17. 字典預設for迴圈時,迴圈的是key值,不是value
    >>> dic = {'k1':'v1'}
    >>> 'k1' in dic        #鍵是True
    True
    >>> dic = {'k1':'v1'}
    >>> 'v1' in dic        #值是False
    False
  18. 布林值
    轉換為布林值:bool( )
    布林值為False的型別: None, " ", ( ), { }, 0  ,其他都為真