1. 程式人生 > >Python 中的字典操作

Python 中的字典操作

語言 clear 組成 {} 返回 括號 做了 進行 不返回

字典:dict

字典在其他編程語言中又稱作關聯數組或散列表
通過鍵實現元素存取: 無序集合,可變類型容器,長度可變,異構,嵌套
表示方法:

phonebook = {‘Alice‘:‘1234‘,‘Beth‘:‘9102‘,...}

字典由鍵及相對應的值組成,這種鍵-值對稱為項(item).在前面的示例中,鍵為名字,而值為電話號碼。
每個鍵與其值之間都用冒號(:)分割,項與項之間用逗號分割,而整個字典放在花括號內{}.
dict = {} 定義一個空字典

dict = {key1:value1,key2:value2,...}

註意: 在字典(以及其他映射類型)中,鍵必須是獨一無二的,如果鍵發生沖突,以最後一個為準(可哈希對象才可以當作鍵,因為在查找是是把鍵做了個哈希表進行查找的,
      所以速度非常快,字典本身是不可哈希的,不能拿字典本身來當鍵,字典嵌套字典時候,內部的字典可以當作值來用而不可以當作值來用)而字典中的值無需如此。

dict = {‘x‘:123,‘y‘:234,‘z‘:456}
print (dict[‘x‘]) 
123

len: 返回字典中元素的個數

>>> dict = {‘a‘:1,‘b‘:2,‘c‘:3}
>>> print(len(dict))
3

字典復制:dict.copy() 深度復制

dict1 = dict.copy()

>>> dict1 = {‘x‘:1,‘y‘:2,‘z‘:3}
>>> dict2 = dict1 (淺復制)
>>> id(dict1)
140166806717496
>>> id(dict2)
140166806717496
>>> dict3 = dict1.copy()  (深度復制,內存位置發生變化)
>>> id(dict3)
140166805562568

dict.get (取得對應鍵的值)

>>> dict = {‘x‘:1,‘y‘:2,‘z‘:3}
>>> dict.get(‘x‘)
1
>>> dict.get(‘y‘)
2
>>> dict.get(‘z‘)
3
>>> 
>>> dict.get(‘h‘) (get的好處沒有這個元素也不會拋出異常)
>>> 

dict.items (把D中的鍵值,實現將字典轉換為元組列表的方式)
註:每一項都被拆成了一個元組,這些元組合起來組成一個列表
>>> dict = {‘x‘:1,‘y‘:2}
>>> dict.items()
dict_items([(‘x‘, 1), (‘y‘, 2)])

變量解包(兩邊要保持一致)
>>> dict = {‘x‘:1,‘y‘:2}
>>> t1,t2 = dict.items()
>>> print (t1)          
(‘x‘, 1)
>>> print (t2)          
(‘y‘, 2)
>>> 

dict.keys (返回鍵列表)

>>> dict = {‘x‘:1,‘y‘:2,‘z‘:3}
>>> dict.keys()
dict_keys([‘x‘, ‘y‘, ‘z‘])

dict.value (返回值列表)

>>> dict = {‘x‘:1,‘y‘:2,‘z‘:3}
>>> dict.values()
dict_values([1, 2, 3])

dict.pop (彈出指定的key)

>>> dict = {‘x‘:1,‘y‘:2,‘z‘:3}
>>> dict.pop(‘x‘)
1
>>> print (dict)
{‘y‘: 2, ‘z‘: 3}
>>> 

dict.popitem (隨機彈出的項)

>>> dict = {‘a‘:1,‘b‘:2,‘c‘:3,‘d‘:4,‘e‘:5,‘f‘:6,‘g‘:7}
>>> dict.popitem()
(‘g‘, 7)
>>> dict.popitem()
(‘f‘, 6)
>>> dict.popitem()
(‘e‘, 5)
>>> dict.popitem()
(‘d‘, 4)
>>> 

dict.update (將一個字典合並到當前字典中)
註意:重復的鍵,將會被覆蓋
update() 方法用於將dict2的鍵值對添加到dict此方法不返回任何內容。

>>> dict1 = {‘a‘:1,‘b‘:2}
>>> dict2 = {‘x‘:666,‘a‘:888}
>>> dict1.update(dict2)
>>> print(dict1)
{‘a‘: 888, ‘b‘: 2, ‘x‘: 666}
>>> 

dict.clear() 清空字典

>>> dict1 = {‘a‘: 888, ‘b‘: 2, ‘x‘: 666}
>>> dict1.clear()
>>> dict1
{}

Python 中的字典操作