dict字典常用操作(python)
1.dict的增刪改查及初始化
1.1 dict的初始化
1.dict() 建構函式可以直接從鍵值對序列裡建立字典
>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
{'sape': 4139, 'guido': 4127, 'jack': 4098}
2.字典推導式可以從任意的鍵值表示式中建立字典
>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}
3.當關鍵字是簡單字串時,有時直接通過關鍵字引數來指定鍵值對更方便
>>> dict(sape=4139, guido=4127, jack=4098)
{'sape': 4139, 'guido': 4127, 'jack': 4098}
1.2 dict的“增”
把資料放入dict的方法,除了初始化時指定外,還可以通過key直接放入:
>>> d = {}
>>> d['Adam'] = 67
>>> d['Adam']
67
1.3 dict的“刪”
要刪除一個key,用pop(key)方法(該函式返回值為key對應的value值),對應的value也會從dict中刪除。
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d.pop('Bob')
75
>>> d
{'Michael': 95, 'Tracy': 85}
也可以用del 來刪除一個鍵值對。
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> del d['Bob']
>>> d
{'Michael': 95, 'Tracy': 85}
1.4 dict的“改”
可以通過key獲取其value直接對其進行賦值
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Bob'] = 70
>>> d
{'Michael': 95, 'Bob': 70, 'Tracy': 85}
1.5 dict的“查”
查詢時若key不存在:直接通過d[‘Thomas’]這種方式去獲取該key對應的value會報錯,要避免key不存在的錯誤,有兩種辦法,
- 一是通過in判斷key是否存在:
>>> 'Thomas' in d
False
- 二是通過dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:
>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1
注意:返回None的時候Python的互動環境不顯示結果
查詢key,value
dic = {'name': 'chen', 'age': 25, 'loc': 'Tianjin'}
# 字典的keys()、value()方法的返回值是物件,不是列表
# 以列表的形式返回key
list(dic.keys())
# 以列表的形式返回value
list(dic.values())
# 迴圈key
for key in dic:
print(key)
# 迴圈key
for key in dic.keys():
print(key)
# 迴圈value,用value()方法可以將所有value取出
for value in dic.values():
print(value)
# 當在字典中迴圈時,用items() 方法可將關鍵字和對應的值同時取出
for key, value in dic.items():
print(key, value)
2.dict是無序的
對於dict的迭代需要注意的是:因為dict的儲存不是按照list的方式順序排列,所以,迭代出的結果順序很可能不一樣。(dict的標準規定不保證有順序,要保證有順序的請用OrderedDict)
from collections import OrderedDict
d = OrderedDict()
關於dict無序這個問題的探討,可以看看下面這篇,如果想深究,建議看一下原始碼,博主在這個地方沒深究過。
https://www.zhihu.com/question/65855807
3.其他
需要牢記的第一條就是dict的key必須是不可變物件。
這是因為dict根據key來計算value的儲存位置,如果每次計算相同的key得出的結果不同,那dict內部就完全混亂了。這個通過key計算位置的演算法稱為雜湊演算法(Hash)
在Python中,字串、整數等都是不可變的,因此,可以放心地作為key。如果一個元組只包含字串、數字或元組,那麼這個元組也可以用作關鍵字。但如果元組直接或間接地包含了可變物件,那麼它就不能用作關鍵字。列表不能用作關鍵字,因為列表可以通過索引、切片或append() 和extend() 之類的方法來改變。
參考:
廖雪峰的python教程,以及官方文件,強烈建議有問題找官方文件。
我這裡面有python3.8的中文官方文件可以自行獲取https://download.csdn.net/download/qq_38048756/13096127。
相關文章
- python字典dict操作方法Python
- Python dict(字典)Python
- dict(字典)的常用方法
- Python中字典dictPython
- Python字典dict用法Python
- Python中字典dict的11種不同操作方法Python
- 字典dict
- python 中字典dict如何新增元素?Python
- python之字典(dict)基礎篇Python
- Python - 基礎資料型別 dict 字典Python資料型別
- Python 字典 dict 獲取索引 轉化為 listPython索引
- 『無為則無心』Python序列 — 21、Python字典及其常用操作Python
- day05 字典 dict
- 【Python從入門到精通】(七)Python字典(dict)讓人人都Python
- python內建物件型別(四)序列之dict字典Python物件型別
- Python中字典的操作Python
- Python程式設計:Counter計數器-dict字典的子類Python程式設計
- Python零基礎學習筆記(二十一)——dict字典Python筆記
- 深入理解 Python 虛擬機器:字典(dict)的最佳化Python虛擬機
- Python匯入Excel表格資料並以字典dict格式儲存PythonExcel
- python字典基本認識和操作Python
- python的字典及相關操作Python
- python存取dictPython
- [Redis原始碼閱讀]dict字典的實現Redis原始碼
- 3-python 元組 字典 集合的操作Python
- python3.9中字典合併如何操作?Python
- Python陣列常用操作Python陣列
- Python中的dictPython
- Python中判斷字典的值常用的方法!Python
- Python 列表、元組、字典及集合操作詳解Python
- Python 這10個字典操作你必須知道Python
- python中dict詳解Python
- Python基礎:dict & setPython
- python中的字典賦值操作怎麼實現?Python賦值
- Python入門(五):Python常用操作運算子Python
- Redis資料結構詳解(2)-redis中的字典dictRedis資料結構
- 用Python完成Excel的常用操作PythonExcel
- Python Redis常用操作(持續更新)PythonRedis