Python中的字典
阿新 • • 發佈:2020-09-11
python中的字典
字典格式:
d = {key1 : value1, key2 : value2}
- 鍵是唯一且不可變的
- 值可以取任何資料型別
字典的基本操作
訪問字典裡的值
>>> tel = {'jack': 4098, 'sape': 4139}
>>> tel['jack']
4098
>>>
獲取字字典中所有鍵的列表
>>> tel {'jack': 4099, 'guido': 4127, 'irv': 4127} >>> list(tel) ['jack', 'guido', 'irv']
修改字典
# 新增元素
>>> tel['guido'] = 4127
# 修改鍵對應的值
>>> tel['jack'] = 4099
>>> tel
{'jack': 4099, 'sape': 4139, 'guido': 4127}
刪除字典元素
# 使用del函式刪除字典元素
>>> del tel['sape']
>>> tel
{'jack': 4099, 'guido': 4127}
字典內建函式和方法
內建函式
- len(dict) - 計算欄位元素個數
>>> tel {'jack': 4099, 'guido': 4127, 'irv': 4127} >>> len(tel) 3
- str(dict) - 輸出欄位,格式為可列印的字串
>>> tel
{'jack': 4099, 'guido': 4127, 'irv': 4127}
>>> str(tel)
"{'jack': 4099, 'guido': 4127, 'irv': 4127}"
- type(variable) - 當變數為字典時,返回字典型別
>>> tel {'jack': 4099, 'guido': 4127, 'irv': 4127} >>> type(tel) <class 'dict'>
內建方法
- key in d - 如果d中存在鍵key則返回True,否則返回False
>>> tel
{'jack': 4099, 'guido': 4127, 'irv': 4127}
>>> 'jack' in tel
True
- key not in d
- copy() - 返回原字典的淺拷貝
>>> tel
{'jack': 4099, 'guido': 4127, 'irv': 4127}
>>> tel1 = tel.copy()
>>> tel1
{'jack': 4099, 'guido': 4127, 'irv': 4127}
- classmethod fromkeys(iterable[, value]) - fromkeys()是一個返回新字典的類方法,value值預設為None,所有值都只引用一個單獨的例項
# 未傳入value,使用預設值None
>>> tel
{'jack': 4099, 'guido': 4127, 'irv': 4127}
>>> tel.fromkeys(tel)
{'jack': None, 'guido': None, 'irv': None}
# 傳入value,所有值都使用value
>>> tel
{'jack': 4099, 'guido': 4127, 'irv': 4127}
>>> tel.fromkeys(tel, 2333)
{'jack': 2333, 'guido': 2333, 'irv': 2333}
- get(key[, default]) - 如果key存在於字典中則返回key的值,否則返回default
>>> tel.get('jack', None)
4099
>>> print(tel.get('rose', None))
None
- items() - 以列表返回可遍歷的(key, value)元組陣列
>>> tel
{'jack': 4099, 'guido': 4127, 'irv': 4127}
>>> tel.items()
dict_items([('jack', 4099), ('guido', 4127), ('irv', 4127)])
- keys() - 返回由字典鍵組成的一個迭代器,可以用list()轉換成列表
>>> tel
{'jack': 4099, 'guido': 4127, 'irv': 4127}
>>> tel.keys()
dict_keys(['jack', 'guido', 'irv'])
>>> list(tel.keys())
['jack', 'guido', 'irv']
- pop(key[, default]) - 如果key存在於字典中則返回key的值,否則返回default
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 4127}
>>> tel.pop('jack')
4098
>>> tel
{'guido': 4127, 'irv': 4127}
- popitem() - 從字典中移除並返回一個(鍵,值)對。鍵值對會按LIFO的順序被返回。
>>> tel
{'guido': 4127, 'irv': 4127, 'jack': 4098}
>>> tel.popitem()
('jack', 4098)
>>> tel
{'guido': 4127, 'irv': 4127}
- reversed(d) - 返回一個逆序獲取字典鍵的迭代器
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 4127}
>>> print(list(reversed(tel)))
['irv', 'guido', 'jack']
- setdefault(key[, default]) - 如果字典存在鍵key,返回它的值。否則,插入值為default的鍵key
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 4127}
>>> tel.setdefault('jack')
4098
>>> tel.setdefault('rose', 4000)
4000
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 4127, 'rose': 4000}
- update([other]) - 使用來自other的鍵/值更新字典,覆蓋原有的鍵。
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 4127, 'rose': 4000}
>>> tel1 = {'irv': 5000, 'dada': 2000}
>>> tel.update(tel1)
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 5000, 'rose': 4000, 'dada': 2000}
- values() - 返回由字典值構成的一個新檢視
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 5000, 'rose': 4000, 'dada': 2000}
>>> tel.values()
dict_values([4098, 4127, 5000, 4000, 2000])
- clear() - 移除字典中的所有元素
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 5000, 'rose': 4000, 'dada': 2000}
>>> tel.clear()
>>> tel
{}