跳至內容

Python/字典

維基教科書,自由的教學讀本

字典(dict)的每個元素,用冒號(:)分割的鍵-值對構成。元素間用逗號(,)分割。整個字典包括在花括號({})中表示。

使用方括號訪問字典中的元素的值。如果鍵不存在,則拋出KeyError。與key值相等的都可以查到同一個項。

鍵必須是可哈希的值。鍵必須是唯一的。鍵是不可變的,因此鍵可以為數字,字符串或元組,但用列表不行。可以增加新的鍵-值對。可以對已有的鍵對應的值。

del關鍵字可以刪除鍵: dict['Name'] ,也可以刪除字典del dict

鍵的順序保持插入序。

創建字典的各種途徑

[編輯]

用冒號(:)分割的鍵-值對,鍵-值對之間用逗號(,)分割。整個字典包括在大括號({})中表示。例如:{'jack': 4098, 'sjoerd': 4127} or {4098: 'jack', 4127: 'sjoerd'}

字典comprehension: {}, {x: x ** 2 for x in range(10)}

使用類型構造符:

  • class dict(**kwargs) 如果給出了關鍵字參數(keyword arguments),則將關鍵字參數及其值添加到從位置參數創建的字典中。 如果要添加的鍵已經存在,則關鍵字參數的值將替換位置參數的值。如f = dict({'one': 1, 'three': 3}, two=2)
  • class dict(mapping, **kwargs) 如果給定位置參數並且它是映射對象,則使用與映射對象相同的鍵值對創建字典。
  • class dict(iterable, **kwargs) 如果給定位置參數並且它不是映射對象,則位置參數必須是可迭代對象。可迭代對象中的每個項目本身必須是恰好具有兩個對象的可迭代對象。 每個元素的第一個對象成為新字典中的鍵,第二個對象成為相應的值。 如果一個鍵出現多次,則該鍵的最後一個值將成為新字典中的對應值。如 c = dict(zip(['one', 'two', 'three'], [1, 2, 3])) 或者 d = dict([('two', 2), ('one', 1), ('three', 3)])

如果沒有給出參數,則創建一個空字典。如:dict()

字典支持的全局方法

[編輯]
函數名 描述
del d[key] 刪除字典中的鍵-值對
key in d
key not in d
iter(d) 為iter(d.keys())的簡寫
reversed(d) 為reversed(d.keys())的簡寫,返回逆向迭代器
len(dict) 計算字典元素個數,即鍵的總數
list(dict) 返回字典的鍵的list
str(dict) 字典內容以可列印的字符串表示
type(variable) 返回輸入的變量類型,如果變量是字典就返回字典類型
other | 創建一個新字典。other的鍵值對有優先權
= other | 修改字典。other的鍵值對有優先權
對鍵值對的 比較

dict包含的方法

[編輯]
方法名 描述
dict.clear() 刪除字典內所有元素
dict.copy() 返回一個字典的淺複製
dict.fromkeys(seq,val) 類方法。創建一個新字典,以序列seq中元素做字典的鍵,可選的val為字典所有鍵對應的初始值
dict.get(key, default=None) 返回指定鍵的值,如果值不在字典中返回default值
dict.items() 以列表返回可遍歷的(鍵, 值) 元組數組
dict.keys() 返回字典所有的鍵的靜態列表
dict.setdefault(key, default=None) 和get()類似返回其值, 但如果鍵不存在於字典中,將會添加鍵並將值設為default
dict.update(dict2) 把字典dict2的鍵/值對更新到dict里
dict.values() 以列表返回字典中的所有值
dict.pop(key[,default]) 刪除字典給定鍵 key 所對應的值,返回被刪除的值。key值必須給出。 否則,返回default值
dict.popitem() 隨機返回並刪除字典中的一對鍵和值(一般刪除末尾對)