python之字典方法

2021-10-07 22:08:03 字數 1791 閱讀 5707

1、clear

clear方法清除字典中所有的項。這是個原地操作,所以無返回值(或者說返回none)

>>> d = {}

>>> d['name']='sh'

>>> d['other']='haha'

>>> d

>>> return_value = d.clear()

>>> d

{}>>> print(return_value)

none

2、copy

cpoy方法返回乙個具有相同鍵值對的新字典(這個方法實現的是淺複製,因為值本身就是相同的,而不是副本)。

>>> x=

>>> y = x.copy()

>>> y

>>> y['username']='other'

>>> y

>>> x

>>> y['machines'].remove('bar')

>>> y

>>> x

可以看到,當在副本中替換值的時候,原始字典不受影響,但是,如果修改了某個值(原地修改,而不是替換),原始的字典也會改變,因為同樣的值也儲存在原字典中(就像上面例子中的machines列表一樣)

避免這個問題的一種方法就是乙個使用深複製,複製其包含的所有值。可以使用copy模組的deepcopy函式來完成操作。

>>> from copy import deepcopy

>>> d = {}

>>> d['names'] = ['alfred','bertrand']

>>> c = d.copy()

>>> dc = deepcopy(d)

>>> c

>>> dc

>>> c

>>> d

>>> dc

3、formkeys

fromkeys方法使用給定的鍵建立新的字典,每個鍵都對應乙個預設的值none.

>>> {}.fromkeys(['name','age'])

剛才的例子中首先構造了乙個空字典,然後呼叫它的fromkeys方法,建立另外乙個詞典有些多餘,此外,您還可以直接在dict上面呼叫該方法,前面講過,dict是所有字典的型別。

>>> dict.fromkeys(['name','age'])

如果不想使用none作為預設值,也可以自己提供預設值。

>>> dict.fromkeys(['name','age'],'(unknown)')

4、get

get方法是個更寬鬆的訪問字典項的方法。一般來說,如果試圖訪問字典中不存在的項時會出錯。

>>> d = {}

>>> print(d['name'])

traceback (most recent call last):

file "", line 1, in keyerror: 'name'

而用get就不會:

>>> print(d.get('name'))

none

5、items

items方法將字典所有的項以列表方式返回,列表中的每一項都表示為(鍵,值)對的形式。但是項在返回時並沒有遵循特定的次序。

>>> d=

>>> d.items()

dict_items([('title', 'python'), ('version', '3.6'), ('spam', 0)])

python字典之fromkeys 方法

fromkeys 方法的一般形式 dict.fromkeys s v 其中s為鍵值,v若不提供則預設為none,我們通過具體的例項了解fromkeys方法 dict1 dict1.fromkeys 1,2,3 以元組的形式為第乙個引數賦值,第二個引數省略 dict1.fromkeys 1,2,3 n...

python 字典方法

1.clear 清除字典中所有的項。原地操作,無返回值 或說返回值為none d d name gumby d age 42 d returned value d.clear d print returned value none 此方法會清除原始字典內容 2.copy 使用給定的key建立新字典,...

python字典的方法 Python 字典常用方法

ab d d.clear d 有人可能會問為什麼不直接d 看下面的例子 d x d d x 再看下面 d x d d.clear x 所以如果要真正清除乙個字典要用clear 複製 d y d.copy y age 32 d y 複製後 y 的修改與 d 無關 但如果乙個字典中有引用型別,如list...