訪問字典的值
字典中的 鍵/值 實際上就是一種對映關係,只要知道了 「鍵」,就肯定知道 「值」。
>>
> my_dict =
dict
(name =
'zhangsan'
,other =
'lisi'
)>>
> my_dict[
'other'
]'lisi'
所以字典中的 「鍵」 是多麼的好用,通過它可以查詢值,可以新增值,可以改變值。
既然字典是一種對映關係,所以在字典裡也就不需要考慮排序的問題,只要有了 「鍵」 就可以知道 「值」,那麼鍵 / 值對的位置在**也就不需要考慮了,如果你仔細看過上面的例子,你就會發現新增完的值在字典中的顯示並不按照它的新增順序。又因為沒有了排序,所以在字典中也沒有索引,所以就不存在索引 & 切片。
字典這種鍵 / 值對的方式儲存資料是一種非常高效的方法,查詢速度超快,相同的,如果你要在列表中查詢乙個值,需要從頭開始乙個個的找,直到找到了指定的索引值,但是在字典中,直接就可以通過 「鍵」 找到 「值」,小規模資料的時候這種好處可能不顯,當儲存大規模資料的時候,這種好處是相當明顯的。
字典的基本操作
下面我用一些例項來依次演示字典中的基本操作:
'''
'''>>
> my_dict =
>>
>
len(my_dict)
#返回字典中鍵 / 值對的數量
>>
> my_dict[
'age'
]#返回字典中的鍵值
>>
> my_dict[
'like']=
'c ++'
#改變字典中的鍵值
>>
> my_dict
>>
>
del my_dict[
'like'
]#刪除指定的鍵 / 值對
>>
> my_dict
>>
>
'like'
in my_dict #檢查字典中是否含有指定鍵的項
false
字典的方法
與前面所講述的其它物件型別相似,字典這個物件型別也有一些能夠實現對其操作的方法。
1.clear
clear 清除字典中所有的元素,得到的是空的字典。
>>
> my_dict =
>>
> my_dict.clear(
)>>
> my_dict
>>
>
del my_dict
>>
> my_dict
traceback (most recent call last)
: file ""
, line 1,in
nameerror: name 'my_dict'
isnot defined
上面的例子我們可以看出 clear 和 del 的區別很大,clear 是將字典清空,得到空字典,而 delete 是將字典刪除,直接從記憶體中去掉。
2.get & setdefault
這兩個是跟鍵 / 值對相關的方法,get 方法就是要得到字典中某個 「鍵」 的 「值」,那麼這就有人要說,不是上面的時候我們已經講過直接查就行嗎?在這裡的 get 和之前說的還不太一樣,這裡的 get 稍微寬鬆一些,如果想要查的值不存在,get 不會有啥反應,而之前說的方法會報錯。
'''
'''>>
> my_dict =
>>
> my_dict.get(
'name'
)'rocky'
>>
> my_dict.get(
'age'
)>>
> my_dict[
'age'
]traceback (most recent call last)
: file ""
, line 1,in
keyerror:
'age'
setdefault 也是用來查詢字典中某個 「鍵」 的 「值」,如果查詢的 「鍵」 存在的話就正常輸出,如果不存在的話,就在字典中加入這個鍵 / 值對。
>>
> my_dict =
>>
> my_dict.setdefault(
'like'
)'python'
>>
> my_dict.setdefault(
'age'
,'23'
)'23'
>>
> my_dict
3.items & keys & values
這是字典的 3 個方法,它們之間有相似之處,很簡單,請看下面的例項:
'''
'''>>
> my_dict =
>>
> my_d = my_dict.items(
)>>
> my_d
dict_items([(
'name'
,'rocky'),
('like'
,'python')]
)>>
> my_k = my_dict.keys(
)>>
> my_k
dict_keys(
['name'
,'like'])
>>
> my_v = my_dict.values(
)>>
> my_v
dict_values(
['rocky'
,'python'
])
4.pop & popitem
pop 和 popitem 是字典中的刪除操作。
pop 是以字典的 「鍵」 為引數,刪除指定的鍵 / 值對,pop 中的引數不能省略且如果刪除字典中沒有的鍵 / 值對,會報錯。
'''
'''>>
> my_dict =
>>
> my_dict.pop(
'name'
)'rocky'
>>
> my_dict
>>
> my_dict.pop(
)traceback (most recent call last)
: file ""
, line 1,in
typeerror: pop expected at least 1 arguments, got 0
>>
> my_dict.pop(
'age'
)traceback (most recent call last)
: file ""
, line 1,in
keyerror:
'age'
popitem 和 pop 有相似之處,但是 popitem 不用寫引數,但是它刪除的不是最後乙個,因為我們說過字典沒有順序,所以 popitem 是隨機刪除乙個,至於刪除誰,完全看命。
5.update
update 就是更新字典,引數可以是字典或者某種可迭代的物件,至於什麼是可迭代這裡你可以先知道這麼個詞,之後我們會說到,它的返回值是 none,你也可以理解成沒有返回值。
>>
> my_dict =
>>
> first =
>>
> my_dict.update(first)
>>
> my_dict
>>
> first
python筆記 字典操作合集
字典生成 dict1 print dict1 name 結果 1 dict1 key value 當key在原字典中不存在時,即為新增操作 改 增 dict1 name 2print dict1 name 結果 2 刪 del dict1 key 無返回值 刪除指定的鍵值對,並返回對應的值 v di...
Python合集之Python字典(四)
ps 前段時間因為年底時間比較繁忙,沒有及時更新,望大家見諒,今天趁著大年初一趕緊給大家更新一波。由於字典是可變序列,所以可以隨時在字典中新增 鍵 值 對 向字典中新增元素的語法格式如下 dictionary key value 引數說明 dictionary 表示字典名稱 key 表示要新增元素的...
字典排序什麼意思 Python 字典經典方法合集
訪問字典的值 字典中的 鍵 值 實際上就是一種對映關係,只要知道了 鍵 就肯定知道 值 所以字典中的 鍵 是多麼的好用,通過它可以查詢值,可以新增值,可以改變值。既然字典是一種對映關係,所以在字典裡也就不需要考慮排序的問題,只要有了 鍵 就可以知道 值 那麼鍵 值對的位置在 也就不需要考慮了,如果你...