Python 字典dict相關知識
阿新 • • 發佈:2018-12-17
- 字典是無序的,多次print輸出的結果不一樣。
- 字典的key可以是數字、字串、元組、布林值(True為1,False為0,不可以和其他key值重複);列表和字典不能作為key。
- 字典的value可以是任何型別。
- 字典支援del方法刪除。
- 字典支援for迴圈,是可迭代物件,不支援while迴圈。
- 輸出字典所有的key:
for item in info.keys(): print(item)
- 輸出字典所有的值:
for item in info.values(): print(item)
- 輸出字典所有的鍵值對:
for k, v in info.items(): print(k, v)
- info.clear( ) | 清空字典
- info.copy( ) |淺拷貝
- dict.fromkeys( *args, **kwargs ) |這是一種靜態方法@staticmethod。根據序列建立字典,並給其指定統一值。 像此類靜態方法呼叫時,用類名.方法名就可以。
前面帶兩個*時,表示這裡可以用name=“…”的形式穿入引數,也可以直接傳入字典。
>>> new_dict = dict.fromkeys(['k1',123,'999'],123) >>> print(new_dict) {'k1': 123, 123: 123, '999': 123}
- info.get( ) |get能直接根據索引號來獲取該索引號對應的值,和直接用info['k1']不同的是,當輸入的索引號不存在時,info['K1']會報錯,但是get會輸出None,並且可以設定當索引號不存在時應該輸出的預設值。
>>> info = {'K1':123,'k2':890} >>> v = info.get('k1111',222) >>> print (v) 222
- info.pop( ) |刪除值並且得到刪掉的值。
>>> info = {'K1':123,'k2':890} >>> v = info.pop('K1') >>> print (info, v) ({'k2': 890}, 123)
- info.popitem( ) |此方法不帶引數,是指隨即刪除字典裡的一個鍵值對,並獲取刪掉的鍵值對的值。
>>> info = {'K1':123,'k2':890} >>> k, v = info.popitem() >>> print(info, k, v) ({'K1': 123}, 'k2', 890) #隨機刪掉了K2鍵值對
- 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)
- 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}
- 字典預設for迴圈時,迴圈的是key值,不是value
>>> dic = {'k1':'v1'} >>> 'k1' in dic #鍵是True True
>>> dic = {'k1':'v1'} >>> 'v1' in dic #值是False False
- 布林值
轉換為布林值:bool( )
布林值為False的型別: None, " ", ( ), { }, 0 ,其他都為真